Java 如何在本例中已经存在的基础上添加新的jpanel?
愚蠢的问题,但我似乎找不到答案,当我这样做的时候,它不起作用。所以我想在已经存在的JPanel上添加新的JPanel。有时,当我添加它时,它只是在我运行它时打开一个新窗口,而其他时候什么也没有发生。总之,代码如下:Java 如何在本例中已经存在的基础上添加新的jpanel?,java,swing,jframe,jpanel,layout-manager,Java,Swing,Jframe,Jpanel,Layout Manager,愚蠢的问题,但我似乎找不到答案,当我这样做的时候,它不起作用。所以我想在已经存在的JPanel上添加新的JPanel。有时,当我添加它时,它只是在我运行它时打开一个新窗口,而其他时候什么也没有发生。总之,代码如下: import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Main extends JFrame {
private static final long serialVersionUID = 1L;
public static void main(String[] args)
{
new Main().setVisible(true);
}
private Main()
{
super("Vending machine");
JPanel p = new JPanel();
JLabel title = new JLabel("Vending machine: ");
JButton button1 = new JButton("1");
JButton button2 = new JButton("2");
JButton button3 = new JButton("5");
JLabel label1 = new JLabel("Enter code: ");
JTextField text1= new JTextField(3);
JButton ok= new JButton("OK");
JButton button4 = new JButton("Return change");
JLabel label2 = new JLabel("Result is: ");
JTextField text2= new JTextField(3);
JLabel label3 = new JLabel("Current: ");
JTextField text3= new JTextField(3);
title.setBounds(200,5,250,80);
title.setFont (title.getFont ().deriveFont (22.0f));
p.add(title);
p.setLayout(null);
button1.setBounds(530,46,120,60);
p.add(button1);
button2.setBounds(530,172,120,60);
p.add(button2);
button3.setBounds(530,298,120,60);
p.add(button3);
label1.setBounds(555,414,120,60);
p.add(label1);
text1.setBounds(530,454,120,30);
p.add(text1);
ok.setBounds(530,550,120,60);
p.add(ok);
button4.setBounds(360,550,120,60);
p.add(button4);
label2.setBounds(230,530,120,60);
p.add(label2);
text2.setBounds(200,575,120,30);
p.add(text2);
label3.setBounds(50,530,120,60);
p.add(label3);
text3.setBounds(38,575,120,30);
p.add(text3);
getContentPane().add(p);
setSize(700,700);
setVisible(true);
}
}
我想在此位置添加新的JPanel:自动售货机:
谢谢大家! 即使你可以这样做,每次你想在这个框架上再做一次更改时,它都会给你带来伤害 使用布局,而不是将一个JPanel定位到另一个JPanel中 您不应该使用静态变量和空布局
使用适当的布局管理器。可能主面板使用边框布局。然后将主构件添加到中心,并将第二个面板添加到东部。第二个面板也可以使用边框布局。然后,您可以根据需要将这两个组件添加到北部、中部或南部。可能相关:
我想在现有的JPanel上添加新的JPanel
-尝试这样做的代码在哪里?我看到你在面板上添加按钮、标签等。我看不到您在何处向面板添加另一个面板。(1+)。是的,您应该使用布局管理器,而不是空布局。请阅读上的Swing教程以获取工作示例。谢谢@camickr我是新来的。我刚刚发现我需要分享每个答案的参考资料,你已经完成了我的答案。非常感谢。