(我剛開始用java編程) 所以這裏是我的代碼!試圖通過單擊Jbutton來打開新的Jframe窗體另一個類
Main:
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
public class buttons {{
/*Frame creation*/
final JFrame frameKontrast = new JFrame();
frameKontrast.setTitle("Main Menu");
frameKontrast.setSize(500,350);
frameKontrast.setLocationRelativeTo(null);
frameKontrast.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
/*JPanel creation*/
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(0, 1));
/*Okno dialogowe*/
final JLabel dialog = new JLabel();
dialog.setText("<html>Jestem bardzo długim bezsensownym dialogiem mam nawet kolejną bardzo długą bezsensowną część która istnieje tylko po to, by ten tekst był ow wiele, wiele dłuższy niż wszystkie inne oraz aby zmusić się do napisania skryptu ktory robi enter w tekście. Koniec.</html>");
JMenuBar menuKontrast = new JMenuBar();
frameKontrast.setJMenuBar(menuKontrast);
/*Przyciski wyboru*/
final JButton przyciskb = new JButton();
przyciskb.setText("Exit");
final JButton przyciska = new JButton();
przyciska.setText("Start the game");
/*Rozwijane menu (zadania)*/
JMenu objectives = new JMenu("Objectives");
JMenuItem zad1 = new JMenuItem("Zadanie numer 1");
JMenuItem zad2 = new JMenuItem("Zadanie numer 2");
JMenuItem zad3 = new JMenuItem("Zadanie numer 3");
/*Dołączanie obiektów do GUI*/
panel.add(dialog);
menuKontrast.add(objectives);
objectives.add(zad1);
objectives.add(zad2);
objectives.add(zad3);
ButtonGroup group = new ButtonGroup();
group.add(przyciska);
group.add(przyciskb);
panel.add(przyciska);
panel.add(przyciskb);
frameKontrast.getContentPane().add(panel);
frameKontrast.getContentPane().add(panel);
frameKontrast.setVisible(true);
}};
這裏是我想通過przyciska按鈕,打開一個新的窗口:
public class frameKontrastGame {{
{
JFrame frameKontrastGame = new JFrame();
frameKontrastGame.setTitle("Kontrast");
frameKontrastGame.setSize(1000,700);
frameKontrastGame.setLocationRelativeTo(null);
frameKontrastGame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(0, 1));
JLabel dialog = new JLabel();
dialog.setText("<html>Kontrast</html>");
JMenuBar menuKontrast = new JMenuBar();
frameKontrastGame.setJMenuBar(menuKontrast);
frameKontrastGame.setVisible(true);
panel.add(dialog);
frameKontrastGame.getContentPane().add(panel);
frameKontrastGame.getContentPane().add(panel);
frameKontrastGame.setVisible(true);
}}}
我知道,它不是最好的代碼。它正在工作,我對此感到滿意。我的問題是我不能使用「這個」聽衆。我希望有人有一點時間來幫助我解決這個簡單的問題。 感謝您閱讀所有這些內容。
即使您可以這樣做,也不應該使用'this'聽衆,因爲這是不好的編程習慣(正如打開多個JFrames一樣)。最好使用匿名內部類ActionListeners。請看這個,並給它一個去。 –
請查看[此鏈接](http://stackoverflow.com/a/16875770/522444)以獲取匿名內部類偵聽器和Actions的示例。 –