我正在尝试让我的程序在实际程序启动之前启动一个收集信息的gui。在main中我尝试调用JFrame,然后应该运行直到按下开始按钮然后主程序应该启动。除了initializeLauncher的基类之外,一切似乎都是正确的。谢谢!
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class InitializeLauncher implements ActionListener {
InitializeLauncher() {
JFrame frame = new JFrame("launcherClient");
Container c = frame.getContentPane();
Dimension d = new Dimension(700,400);
c.setPreferredSize(d);
JButton startButton = new JButton("Start");
JPanel pane = new JPanel();
startButton.addActionListener(this);
pane.add(startButton);
frame.add(pane);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setVisible(true);
}
public void buttonClicked(ActionEvent e)
{
ApplicationDeploy displayExample = new ApplicationDeploy();
displayExample.initializeGameClient();
}
}
...然后在主要部分我称之为:
InitializeLauncher launcher = new InitializeLauncher();
launcher.InitializeLauncher();
答案 0 :(得分:3)
通过使你的课抽象,你正在修复错误的东西。相反,您应该为您的班级提供缺少的方法public void actionPerformed(ActionEvent e) {...}
这里的基本规则是,如果你声明你的类要实现一个接口,这里是ActionListener接口,那么类必须实现接口的所有方法。
@Override
public void actionPerformed(ActionEvent e) {
// ... your code that should occur when the button is pressed goes here
}
请注意,您的buttonClicked(...)
方法对您没有任何帮助。可能你会想要摆脱那个方法并将其代码放入actionPerformed方法。
顺便说一下,我经常使用JOptionPane来获得你正在使用JFrame的功能。