Se connecter avec
S'enregistrer | Connectez-vous

Petits topic sur le JAVA

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte
Expert Programmation

Voici ce que j'en pense.

Ce qui est bien dans le Java:
- C'est un très bon langage objets et les types de bases sont des objets
- Il est portable (JVM)
- Il permet de faire pas mal de choses avec le web
- Le garbage collector permet une programmation propre

Ce qui n'est pas terrible:
- Pas d'héritage multiple (ils ne se sont pas cassé la tête pour la compilation)
- La JVM/garbage collector peut faire ramer certains programmes
- Le Framework Swing est buggué (enfin était à la 1.3.x 1.4) quand on l'utilise bien (mais bon aucun n'est exempt de bug).

Pour moi, l'application idéale du Java c'est pour faire un client. Le serveur étant en C ou C++ pour les gros calculs et l'interface en socket ou corba.

j'aime beaucoup java mais ce langage comporte un gros probleme les appli consomment énormément de ressources,

les trucs graphiques rament tres vite, ce qui limite ce tres beau langage au petites application

a quand une carte d'extention hardware qui permette de faire tourner la machine virtuelle hyper vite? :-P

Si vous voulez vous pouvez porposer vos petit programmes, moi par exemple, je suis en train de faire un mastermind avec l'interface graphique utilisateur (GUI), bon, pour la GUI ca roule, mais pour le reste je peine un petit peu.
En fait j'ai ma fenetre, un menu pour faire une nouvelle partie, pour afficher les meilleur scores, l'aide et pour quitter le prgm.
Sinon, j'ai aussi fait un textField() pour faire une proposition ainsi qu'un bouton "OK", et un textArea() pour afficher , par la suite, les résultats.

Voici le source :

  1. import java.awt.*;
  2.  
  3. import java.awt.event.*;
  4.  
  5. import java.io.*;
  6.  
  7. import javax.swing.*;
  8.  
  9. import javax.swing.event.*;
  10.  
  11.  
  12.  
  13. public class Mastermind
  14.  
  15. {
  16.  
  17. public static void main(String[] args)
  18.  
  19. {
  20.  
  21. MasterFrame frame = new MasterFrame();
  22.  
  23. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  24.  
  25. frame.setVisible(true);
  26.  
  27. }
  28.  
  29. }
  30.  
  31.  
  32.  
  33. class MasterFrame extends JFrame
  34.  
  35. {
  36.  
  37. public MasterFrame()
  38.  
  39. {
  40.  
  41. setTitle("MASTERMIND");
  42.  
  43. setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
  44.  
  45.  
  46.  
  47. JMenuBar menuBar = new JMenuBar();
  48.  
  49.  
  50.  
  51. JMenu fileMenu = new JMenu("Fichier");
  52.  
  53. menuBar.add(fileMenu);
  54.  
  55.  
  56.  
  57. JMenu helpMenu = new JMenu("Aide");
  58.  
  59. menuBar.add(helpMenu);
  60.  
  61.  
  62.  
  63. JMenuItem newItem = new JMenuItem("Nouvelle partie", new ImageIcon("..\\Mastermind\\images\\new.png"));
  64.  
  65. fileMenu.add(newItem);
  66.  
  67. fileMenu.addSeparator();
  68.  
  69.  
  70.  
  71. JMenuItem scoreItem = new JMenuItem("Meilleurs scores", new ImageIcon("..\\Mastermind\\images\\best.png"));
  72.  
  73. scoreItem.addActionListener(new
  74.  
  75. ActionListener()
  76.  
  77. {
  78.  
  79. public void actionPerformed(ActionEvent event)
  80.  
  81. {
  82.  
  83. if (scores == null)
  84.  
  85. scores = new scoreFrame();
  86.  
  87. scores.setVisible(true);
  88.  
  89. }
  90.  
  91. });
  92.  
  93.  
  94.  
  95. fileMenu.add(scoreItem);
  96.  
  97. fileMenu.addSeparator();
  98.  
  99.  
  100.  
  101. JMenuItem quitItem = new JMenuItem("Quitter le jeu", new ImageIcon("..\\Mastermind\\images\\cancel.png"));
  102.  
  103. fileMenu.add(quitItem);
  104.  
  105. quitItem.addActionListener(new
  106.  
  107. ActionListener()
  108.  
  109. {
  110.  
  111. public void actionPerformed(ActionEvent event)
  112.  
  113. {
  114.  
  115. System.exit(0);
  116.  
  117. }
  118.  
  119. });
  120.  
  121.  
  122.  
  123. JMenuItem helpItem = new JMenuItem("Aide", new ImageIcon("..\\Mastermind\\images\\help.png"));
  124.  
  125. helpMenu.add(helpItem);
  126.  
  127. helpMenu.addSeparator();
  128.  
  129. helpItem.addActionListener(new
  130.  
  131. ActionListener()
  132.  
  133. {
  134.  
  135. public void actionPerformed(ActionEvent event)
  136.  
  137. {
  138.  
  139. if (help == null)
  140.  
  141. help = new helpFrame();
  142.  
  143. help.setVisible(true);
  144.  
  145. }
  146.  
  147. });
  148.  
  149.  
  150.  
  151. JMenuItem aboutItem = new JMenuItem("A propos", new ImageIcon("..\\Mastermind\\images\\about.png"));
  152.  
  153. helpMenu.add(aboutItem);
  154.  
  155. aboutItem.addActionListener(new
  156.  
  157. ActionListener()
  158.  
  159. {
  160.  
  161. public void actionPerformed(ActionEvent event)
  162.  
  163. {
  164.  
  165. if(dialog == null)
  166.  
  167. dialog = new AboutDialog(MasterFrame.this);
  168.  
  169. dialog.setVisible(true);
  170.  
  171. }
  172.  
  173. });
  174.  
  175.  
  176.  
  177. setJMenuBar(menuBar);
  178.  
  179.  
  180.  
  181. JLabel label = new JLabel(" Entrez un nombre :");
  182.  
  183.  
  184.  
  185. JTextField textField = new JTextField(8);
  186.  
  187. textField.setMaximumSize(textField.getPreferredSize());
  188.  
  189.  
  190.  
  191. JButton okButton = new JButton("OK");
  192.  
  193. //********** J'aimerais mettre ici un racourci pour le bouton 'OK', la touche 'ENTREE'. **********
  194.  
  195. okButton.addActionListener(new
  196.  
  197. ActionListener()
  198.  
  199. {
  200.  
  201. public void actionPerformed(ActionEvent event)
  202.  
  203. {
  204.  
  205. JOptionPane.showConfirmDialog(null, "C'est super nul hein ?");
  206.  
  207. }
  208.  
  209. });
  210.  
  211.  
  212.  
  213.  
  214.  
  215. Box hbox = Box.createHorizontalBox();
  216.  
  217. hbox.add(label);
  218.  
  219. hbox.add(Box.createGlue());
  220.  
  221. hbox.add(textField);
  222.  
  223. hbox.add(Box.createHorizontalStrut(10));
  224.  
  225. hbox.add(okButton);
  226.  
  227.  
  228.  
  229. getContentPane().add(hbox, BorderLayout.NORTH);
  230.  
  231.  
  232.  
  233. JTextArea textArea = new JTextArea();
  234.  
  235. textArea.setEditable(false);
  236.  
  237. JScrollPane scrollPane = new JScrollPane(textArea);
  238.  
  239.  
  240.  
  241. getContentPane().add(scrollPane, BorderLayout.CENTER);
  242.  
  243.  
  244.  
  245. }
  246.  
  247.  
  248.  
  249. public static final int DEFAULT_WIDTH = 300;
  250.  
  251. public static final int DEFAULT_HEIGHT = 300;
  252.  
  253.  
  254.  
  255. private JTextArea textArea;
  256.  
  257. private JTextField textField;
  258.  
  259.  
  260.  
  261. private JScrollPane scrollPane;
  262.  
  263. private AboutDialog dialog;
  264.  
  265. private scoreFrame scores;
  266.  
  267. private helpFrame help;

Ouais, j'ai construit une fenetre avec JFrame,
Voici le code en entier :
  1. try {
  2. String url = "<a href="http://java.sun.com" target="_blank">http://java.sun.com</a>";
  3. JEditorPane editorPane = new JEditorPane(url);
  4. editorPane.setEditable(false);
  5.  
  6. JFrame frame = new JFrame();
  7. frame.getContentPane().add(editorPane, BorderLayout.CENTER);
  8. frame.setSize(800, 500);
  9. frame.setVisible(true);
  10. } catch (IOException e) {
  11. }
Expert Programmation

Citation :

TheDevilSon a écrit :
Ouais, y'a pas moyen de faire afficher une page vraiment basique !!!
J'ai changer un peu le source, parce que lorsque je lancait l'application, il ne se passait rien du tout !
Maintenant ça m'affiche la fenetre mais rien d'autre !! :-x

Ah je viens de penser à un truc... le firewall :-D
As-tu ouvert le port http (port 80) pour ce programme java ? ;-)

Pour les tutoriaux de Java:
http://java.sun.com/docs/books/tutorial/

bon ba moi j'ai une petite question sur le java ou peut-être pas vraiment ...
En gros j'ai fait un prog qui simule la bourse, adapté aux consomations d'un bar, ca tourne on l'a même utilisé lors d'une soirée étudiante.
maintenant je voudrais faire pareil mais avec plusieurs PC. Je me suis renseigné sur les sockets ca ca devrait aller, mais je ne sais absolument pas si je dois faire des trucs avant directement sur les PC
par exemple si je les connecte entre eux via un rooter, je suppose qu'il y a des configs à faire avant de faire genre :
serveur :
ServerSocket ssocket = new ServerSocket(Nport);
Socket com = ssocket.accept();
et
client :
Socket com = new Socket(IPhote, Nport);
j'ai beau chercher sur le net je trouve rien la dessus :-?
merki d'avance :-D

ba tiens je viens juste d'avoir un problème en java alors je me dirige vers vous :-D
alors voila
j'ai une classe et, je sais pas comment on dit en français :-? , mais elle est ?étendu? à une Frame mouai bof
je vais la refaire :
public class creation extends Frame implements ActionListener
voila comme ca tous le monde comprends mais si vous avez la version francaise faites passer :-)
et donc j'ai ma methode keydown avec un petit truc dedans
mais il y a un hic !
quand je presse une touche, rien ne se passe !
et j'ai remarqué que quand je vire mon JPanel ou j'ai mi mes bouton et mes zone de text, et bin ca marche !
alors le problème c'est que je voudrais que ca marche sans avoir à virer tout ca... logique non ?
bon bin voila c'es tout si vous avez une solution c'est cool
merci davance :-P
Expert Programmation

ta classe hérite de Frame ;-)

En fait ton problème est un problème de focus. Si ça ne marche pas bien, met le focus sur ta frame et dans ta fonction fait appel à la même fonction du JPanel.
Bon je ne suis pas sûr du tout (ça fait un moment que j'ai pas touché à ça).

Moi, je débute en java, je travail essentiellement l'interface graphique.

Mais dans le bouquin que j'ai acheté et sur les sites, il y a surtout les bases, et sur l'api ce n'est pas toujours évident.
Est-ce que vous connaissez des livres/sites plus spécialisés sur l'interface graphique, notament pour les animations?

je sais pas ce que c'est le jsp a part peut-être java server page... :-)
sinon j'ai avencer dans mon projet ! mais il me manque une donnée que je ne trouve pas sur le net :
comment on implémente de l'opengl en java
et aussi une autre question
j'ai vu qu'avec opengl on peut faire tous les calcul de rotation et tout mais moi je le fais déja en C il que je refasse tout en opengl ou je laisse en C en gros la question c'est est-ce que tous les calcul en opengl sont fait avec la carte graphic ou pas ?

Citation :
comment on implémente de l'opengl en java

par exemple avec JOGL

Citation :
c'est est-ce que tous les calcul en opengl sont fait avec la carte graphic ou pas ?

oui, tous les calculs matriciels sont faits sur la carte graphique, sauf si ta carte graphique est trop vieille et n'integre pas OpenGL, auquel cas, ce sera une emulation logicielle qui fera les calculs

ba voila je suis aller sur un site qui explique comment faire pour implémenter du jogl dans mon application mais ca marche po
alors je me demande quand même un truc : j'ai mis des fichiers jar dans mon dossier "ext", mais je n'ai pas signalé à mon compilateur que j'avais rajouter des trucs alors c'est peut-être pour ca ? j'ai net beans comme compilateur, vous pouvez m'aider :-D

Est-ce que quelqu'un pourrait me dire si il est possible de faire disparaitre le curseur de la souris lorsque celle-ci rentre dans une fenetre ?
Parce que j'ai fait une petite classe qui me construit un viseur de sniper et j'aimerait que le curseur de la souris disparaisse quand je suis dans ma fenetre .
Lassé par la pub ? Créez un compte
Tom's guide dans le monde