Ich fange gerade an, mit JSwing zu arbeiten und zu versuchen, zu lernen, mit Knöpfen und so umzugehen, so werden alle Kritiken geschätzt, und ich entschuldige mich im Voraus für irgendwelche grundlegenden Fehler. Ich versuche nur, einen grundlegenden JFrame mit zwei Knöpfen mit verschiedenen Ergebnissen zu schaffen. Aus irgendeinem Grund kann die Methode actionPerformed den Button "pressme" nicht finden, obwohl ich den Action Listener verwende. Kann mir jemand helfen, die Lösung dafür zu finden? Vielen Dank im Voraus! -NickProblem mit dem Finden von Ereignis mit ActionListener
import java.util.Scanner;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class JPanel extends JFrame implements ActionListener
{
public JPanel createContentPane(){
JPanel pane = new JPanel();
Container con = this.getContentPane();
JPanel titlePanel = new JPanel();
titlePanel.setLayout(null);
titlePanel.setLocation(10, 0);
titlePanel.setSize(250, 30);
pane.add(titlePanel);
JLabel answer = new JLabel("");
pane.add(answer);
JLabel label1 = new JLabel("Is Ms. Stilman a savage?", JLabel.CENTER);
label1.setSize(150, 15);
label1.setLocation(250, 10);
titlePanel.add(label1);
JButton pressme = new JButton("Nah, what are you talking about?");
pane.add(pressme);
pressme.setMnemonic('P');
pressme.addActionListener(this);
pressme.setLocation(250, 10);
pressme.requestFocus();
JButton secondpress = new JButton("Yea she's a hardcore savage.");
pane.add(secondpress);
secondpress.addActionListener(this);
secondpress.setLocation(250, 10);
secondpress.requestFocus();
}
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
if (source == pressme) {
answer.setText("Button pressed!");
JOptionPane.showMessageDialog(null, "You're wrong and probably a scrub.", "Message Dialog",
JOptionPane.PLAIN_MESSAGE); setVisible(true);
}
else if (source == secondpress) {
answer.setText("Button pressed!");
JOptionPane.showMessageDialog(null, "Oh ya for sure.", "Message Dialog",
JOptionPane.PLAIN_MESSAGE); setVisible(true);
}
}
public static void createAndShowGui(){
JFrame Frame1 = new JFrame("Button Press Test");
setContentPane(demo.createContentPane());
setSize(500, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
Die Benennung Ihrer Klasse 'JPanel' ist keine gute Idee. – Berger
Haben Sie keinen Kompilierfehler erhalten? Ihre Klasse JPanel steht in Konflikt mit javax.swing.JPanel. JPanel-Bereich = new JPanel(); wird zu einem Fehler führen. – randominstanceOfLivingThing
'pressme' und andere Komponenten sind in' createContent' deklariert, so dass sie von 'actionPerformed' nicht gesehen werden können. Der Umfang dieser Variablen ist auf die 'createContent'-Methode beschränkt. – Berger