好吧,这就是问题所在:
我创造了这个小猜谜游戏,并希望以gui为基础...... 但它出现在两个不同的窗口 -
我有办法将两个窗口合二为一 - 第一个窗口中的AS被第二个窗口覆盖了吗?
public class Skeleton extends JFrame implements ActionListener
{
JPanel glass = new JPanel();
JButton btn = new JButton("Start");
TextField tf = new TextField();
JLabel label = new JLabel("Enter Guess Here: ");
JLabel answerLabel = new JLabel("Answer:...");
Board bob =new Board();
public Skeleton()
{
setIconImage(new ImageIcon("icon.png").getImage());
getContentPane().setBackground(Color.darkGray);
getContentPane().setForeground(Color.black);
setLayout(new FlowLayout(FlowLayout.CENTER,10,10));
add(label);
label.setForeground(Color.black);
add(tf);
tf.setText("");
add(btn);
btn.setBackground(Color.green);
btn.addActionListener(this);
add(answerLabel);
answerLabel.setForeground(Color.black);
setTitle("Guessing Game");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(300,200);
setLocationRelativeTo(null);
setVisible(true);
setResizable(true);
}
public void actionPerformed(ActionEvent e)
{//GAME FRAME
JFrame frame = new JFrame();
int userGuess= Integer.parseInt(tf.getText());
frame.add(bob);
frame.setVisible(true);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setSize(300,285);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setIconImage(new ImageIcon("icon.png").getImage());
...........
这显然不是完整的代码,只是使用GUI的部分。
注意:在此动作事件中我确实有其他一些在单击按钮后发生。
这也是我的第一场比赛:D(如果我可以称之为一个)
答案 0 :(得分:2)
您可以在“actionPerformed”方法中创建新的JFrame,因此拥有两个框架(Skeleton实例和新框架)是正常的。
只使用“this”而不是新的JFrame实例来保留一个JFrame实例。
答案 1 :(得分:2)
每个JFrame都会创建一个新窗口。如果要将所有内容显示在同一窗口中,请仅创建一个JFrame并更改其内容。
您可以通过设置其contentPane( frame.setContentPane(...))或向其中添加/删除Panel来更改JFrame的整个内容。
我建议你看看JPanel,因为你会经常使用它。