我的Keypad类是独立的,我想从另一个类(gui)中运行它,这样我就可以在gui类中拥有我想要的任何东西(一些btn等),然后在Keypad的底部。
当我尝试Keypad kp = new Keypad();
时,我几乎得到了我想要的东西,但它们显示在不同的窗口中,我希望它们在同一个窗口中。
这就是键盘类:
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class KeypadWork extends JFrame implements ActionListener {
private JButton buttonR = new JButton("Reset");
private JButton button0 = new JButton("0");
private JButton buttonE = new JButton("Enter");
public KeypadWork() {
setTitle("Keypad");
setLayout(new GridLayout(4, 3, 2, 2));
for (int i = 1; i < 10; i++) {
addButton(new JButton(String.valueOf(i)));
}
addButton(buttonR);
addButton(button0);
addButton(buttonE);
this.pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setResizable(false);
setVisible(true);
}
private void addButton(JButton button) {
button.addActionListener(this);
add(button);
}
@Override
public void actionPerformed(ActionEvent e) {
}
}
这就是解决方案,谢谢@Aldrath
如果不希望
KeyPadWork
实例位于单独的窗口中,则不应将其设为JFrame
。如果您希望它位于另一个窗口中,请改为扩展JPanel
,并使用普通的AWTContainer.add(Component)
方法将KeyPadWork
实例添加到其他JFrame
中。
非常感谢!