我正在創建一個測驗,並創建了一個帶有JFrame的類,類似於主菜單。在這個菜單上,我創建了一個JButton,我想打開單獨的JDialog(它將包含問題等)。在一個類中打開JButton打開單獨的JDialog類
的JDialog的是一個名爲questionDialog.java
一個單獨的類,我相信,你必須執行一個動作監聽器調用調用setVisible(真),但是當我這樣做,我得到一個不能使靜態引用非靜態方法設置錯誤。
任何幫助將不勝感激,我使用Eclipse和Jigloo是用於GUI
這裏是我的代碼在我的主菜單JFrame類,專門爲我要打開按鈕的代碼,新的JDialog 公衆靜態無效的主要(字串[] args){ SwingUtilities.invokeLater(新的Runnable(){ 公共無效的run(){ NewJFrame研究所=新NewJFrame(); inst.setLocationRelativeTo(空); inst.setVisible(真); } }); }
startButton = new JButton();
getContentPane().add(startButton);
startButton.setText("Start Quiz");
startButton.setBounds(454, 239, 65, 23);
這裏是給我的錯誤
startButton = new JButton();
getContentPane().add(startButton);
startButton.setText("Start Quiz");
startButton.setBounds(454, 239, 65, 23);
startButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent actionevent)
{
questionDialog.setVisible(true);
}
});
下面是從單獨的JDialog類的
package ZillionaireGUI;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class questionDialog extends javax.swing.JDialog {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame();
questionDialog inst = new questionDialog(frame);
inst.setVisible(true);
}
});
}
public questionDialog(JFrame frame) {
super(frame);
initGUI();
}
private void initGUI() {
try {
setSize(400, 300);
} catch (Exception e) {
e.printStackTrace();
}
}
}
您發佈的代碼沒有錯誤。你究竟在哪裏看到錯誤? –
@peeskillet我也沒有看到錯誤。我認爲@ user3455584正試圖通過調用'questionDialog.setVisible(true)'來打開questionDialog。是這樣嗎? – SharpKnight
@SharpKnight是的,這是正確的,但是當我嘗試這樣做時,我得到了上述錯誤 – user3455584