|
| bobremy | Posté le 24/02/2005 @ 18:52 |
Petit astucien
173 Messages
| Bonsoir,
Je viens de finir une calculette en java, la compilation se passe sans erreur, mais au lancement, j'ai :
Exception in thread "main" java.lang.NoSuchMethodError: main
Press any key to continue...
le code:
[code]import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class CalculetteFrame extends JFrame
{
public CalculetteFrame()
{
setTitle("Calculette");
setSize(200,200);
Container contentPane = getContentPane();
CalculettePanel panel = new CalculettePanel();
contentPane.add(panel);
}
}
class CalculettePanel extends JPanel
{
public CalculettePanel()
{
setLayout(new BorderLayout());
result=0;
lastCommand="=";
start=true;
display=new JTextField("0");
display.setEditable(false);
add(display,BorderLayout.NORTH);
ActionListener insert=new InsertAction();
ActionListener command=new CommandAction();
panel=new JPanel();
panel.setLayout(new GridLayout(4,4));
JButton button1 = new JButton("7");
button1.addActionListener(insert);
panel.add(button1);
JButton button2 = new JButton("8");
button2.addActionListener(insert);
panel.add(button2);
JButton button3 = new JButton("9");
button3.addActionListener(insert);
panel.add(button3);
JButton button4 = new JButton("/");
button4.addActionListener(command);
panel.add(button4);
JButton button5 = new JButton("4");
button5.addActionListener(insert);
panel.add(button5);
JButton button6 = new JButton("5");
button6.addActionListener(insert);
panel.add(button6);
JButton button7 = new JButton("6");
button7.addActionListener(insert);
panel.add(button7);
JButton button8 = new JButton("*");
button8.addActionListener(command);
panel.add(button8);
JButton button9 = new JButton("1");
button9.addActionListener(insert);
panel.add(button9);
JButton button10 = new JButton("2");
button10.addActionListener(insert);
panel.add(button10);
JButton button11 = new JButton("3");
button11.addActionListener(insert);
panel.add(button11);
JButton button12 = new JButton("-");
button12.addActionListener(command);
panel.add(button12);
JButton button13 = new JButton("0");
button13.addActionListener(insert);
panel.add(button13);
JButton button14 = new JButton(".");
button14.addActionListener(insert);
panel.add(button14);
JButton button15 = new JButton("=");
button15.addActionListener(command);
panel.add(button15);
JButton button16 = new JButton("+");
button16.addActionListener(command);
panel.add(button16);
}
private class InsertAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String input=event.getActionCommand();
if (start)
{
display.setText(" ");
start=false;
}
display.setText(display.getText()+input);
}
}
private class CommandAction implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
String command=evt.getActionCommand();
if (start)
{
if(command.equals("-"))
{
display.setText(command);
start=false;
}
else lastCommand=command;
}
else
{
calcul(Double.parseDouble(display.getText()));
lastCommand=command;
start=true;
}
}
}
public void calcul(double x)
{
if (lastCommand.equals("+")) result +=x;
else if (lastCommand.equals("-")) result -=x;
else if (lastCommand.equals("*")) result *=x;
else if (lastCommand.equals("/")) result /=x;
else if (lastCommand.equals("=")) result =x;
display.setText(" "+result);
}
private double result;
private boolean start;
private String lastCommand;
private JTextField display;
private JPanel panel;
}
public class Calculette
{
public static void main(String args[])
{
CalculetteFrame frame = new CalculetteFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}[/code]
Quelqu'un a un idée?
|
| |
| |
| Publicité |
|
|
| breizhbugs | Posté le 24/02/2005 à 19:09 |
Astucien
3001 Messages
| Ton fichier s'appelle t-il calculette.java? |
| |
|
| bobremy | Posté le 24/02/2005 à 19:12 |
Petit astucien
173 Messages
| oui, c'est le bon nom...
Tu peux essayer de la compiler puis de le lancer sur ton pc stp ?
Pour voir si toi aussi tu as ce message ... |
| |
|
| bobremy | Posté le 24/02/2005 à 19:51 |
Petit astucien
173 Messages
| bon, maintenant, il se lance...
Mais les boutons s'affiche pas, une idée ? |
| |
|
| breizhbugs | Posté le 24/02/2005 à 20:01 |
Astucien
3001 Messages
| Dans calculetteFrame, il faut un add(contentPane) je dirais.
Sinon j'ai pas le jdk d'installer (le java m'a jamais vraiment plu, mais j'en ai fait un peu a l'ecole) donc peut pas tester dsl.
Modifié par breizhbugs le 24/02/2005 20:02 |
| |
|
| edon47 | Posté le 25/02/2005 à 17:00 |
Petit astucien
438 Messages
| Salut bobremy,
J'ai testé ton application avec le débogeur JBuilder 9 et ton prob. est que ton panel n'est pas ajouté à ton JPanel(panel = new Jpanel;) dans le constructeur. Tu dois l'ajouter à la fin de l'initialisation des boutons.
[code]JButton button11 = new JButton("3");
button11.addActionListener(insert);
panel.add(button11);
JButton button12 = new JButton("-");
button12.addActionListener(command);
panel.add(button12);
JButton button13 = new JButton("0");
button13.addActionListener(insert);
panel.add(button13);
JButton button14 = new JButton(".");
button14.addActionListener(insert);
panel.add(button14);
JButton button15 = new JButton("=");
button15.addActionListener(command);
panel.add(button15);
JButton button16 = new JButton("+");
button16.addActionListener(command);
panel.add(button16);
add(panel); (ajout ici)
}[/code]
Ainsi quand tu fais "contentPane.add(panel);", tes boutons vont apparaître dans ton JFrame.
Ça marche. Bonne programmation.
|
| |
|
| bobremy | Posté le 25/02/2005 à 17:42 |
Petit astucien
173 Messages
| Merci, je vais regarder ca. |
| |
|
|
| Haut de la page |