A
ABCJavaAnfänger
Gast
Hey Leute,
brauche als Programmieranfänger dringend Hilfe.
In dem unten geschriebenen Code krieg ich es nicht auf die Reihe, dass in den beiden ActionListenern das Frame wieder geschlossen wird, welches ich vorher in der Methode "createFrame();" geöffnet habe.
Bin schon seit einiger Zeit dabei, habe mehrere Dinge ausprobiert, und wenn dann nur eine java.lang.NullPointerException in den beiden frame.dispose Methoden.
Kann mir jemand bei der Lösung dieses Problems helfen?
[Java]1: import javax.swing.*;
2: import java.awt.*;
3: import java.awt.event.*;
4:
5: public class Start extends JFrame {
6: JRadioButton button1;
7: JRadioButton button2;
8: JFrame frame;
9:
10: public static void main(String[] args) {
11: Start gui = new Start();
12: gui.createFrame();
13: }
14:
15: public void createFrame() {
16: JFrame frame = new JFrame();
17: frame.setSize(300, 100);
18: frame.setVisible(true);
19: frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
20:
21: ButtonGroup Gruppe = new ButtonGroup();
22: JRadioButton button1 = new JRadioButton("Album");
23: JRadioButton button2 = new JRadioButton("Track");
24: Gruppe.add(button1);
25: Gruppe.add(button2);
26: button1.setSelected(true);
27: button2.setSelected(true);
28: button1.addActionListener(new Action1Listener());
29: button2.addActionListener(new Action2Listener());
30:
31: JPanel panel = new JPanel();
32: panel.add(button1);
33: panel.add(button2);
34: frame.getContentPane().add(BorderLayout.CENTER, panel);
35: panel.setBorder(BorderFactory.createLineBorder(Color.black, 1));
36:
37: JLabel text = new JLabel("Was möchten Sie einfügen?");
38: frame.getContentPane().add(BorderLayout.NORTH, text);
39: text.setBorder(BorderFactory.createLineBorder(Color.black, 1));
40: }
41:
42: class Action1Listener implements ActionListener {
43: public void actionPerformed(ActionEvent event) {
44: frame.this.dispose();
45: }
46: }
47:
48: class Action2Listener implements ActionListener {
49: public void actionPerformed(ActionEvent event) {
50: frame.this.dispose();
51: }
52: }
53:
54: }
[/code]
brauche als Programmieranfänger dringend Hilfe.
In dem unten geschriebenen Code krieg ich es nicht auf die Reihe, dass in den beiden ActionListenern das Frame wieder geschlossen wird, welches ich vorher in der Methode "createFrame();" geöffnet habe.
Bin schon seit einiger Zeit dabei, habe mehrere Dinge ausprobiert, und wenn dann nur eine java.lang.NullPointerException in den beiden frame.dispose Methoden.
Kann mir jemand bei der Lösung dieses Problems helfen?
[Java]1: import javax.swing.*;
2: import java.awt.*;
3: import java.awt.event.*;
4:
5: public class Start extends JFrame {
6: JRadioButton button1;
7: JRadioButton button2;
8: JFrame frame;
9:
10: public static void main(String[] args) {
11: Start gui = new Start();
12: gui.createFrame();
13: }
14:
15: public void createFrame() {
16: JFrame frame = new JFrame();
17: frame.setSize(300, 100);
18: frame.setVisible(true);
19: frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
20:
21: ButtonGroup Gruppe = new ButtonGroup();
22: JRadioButton button1 = new JRadioButton("Album");
23: JRadioButton button2 = new JRadioButton("Track");
24: Gruppe.add(button1);
25: Gruppe.add(button2);
26: button1.setSelected(true);
27: button2.setSelected(true);
28: button1.addActionListener(new Action1Listener());
29: button2.addActionListener(new Action2Listener());
30:
31: JPanel panel = new JPanel();
32: panel.add(button1);
33: panel.add(button2);
34: frame.getContentPane().add(BorderLayout.CENTER, panel);
35: panel.setBorder(BorderFactory.createLineBorder(Color.black, 1));
36:
37: JLabel text = new JLabel("Was möchten Sie einfügen?");
38: frame.getContentPane().add(BorderLayout.NORTH, text);
39: text.setBorder(BorderFactory.createLineBorder(Color.black, 1));
40: }
41:
42: class Action1Listener implements ActionListener {
43: public void actionPerformed(ActionEvent event) {
44: frame.this.dispose();
45: }
46: }
47:
48: class Action2Listener implements ActionListener {
49: public void actionPerformed(ActionEvent event) {
50: frame.this.dispose();
51: }
52: }
53:
54: }
[/code]