gpt4 book ai didi

java - 无法让 JPanel 组件显示在 JFrame 上

转载 作者:行者123 更新时间:2023-12-01 22:21:21 25 4
gpt4 key购买 nike

我正在为需要我实现 JMenuBar 的类编写一段简单的代码。我在显示它时没有遇到任何问题,但无法在菜单下方的 JFrame 上显示 JPanel

我尝试过多种方法,但我永远无法显示面板。我已经尝试给框架一个布局和面板一个布局,但它仍然不起作用。将显示的只是菜单。这是因为我在 main 方法中完成这一切吗?我知道这里的专业人士将能够在几秒钟内解决这个问题。谢谢。

//TestPerson.java 
import javax.swing.*;
import java.awt.*;



public class TestPerson{
public static void main(String [] args){
JFrame f = new JFrame();
f.setSize(600, 600);
f.setVisible(true);
JMenuBar pmb = new JMenuBar();
f.setJMenuBar(pmb);
f.setLocationRelativeTo(null);


JMenu file = new JMenu("File");
JMenu display = new JMenu("Display");
JMenu edit = new JMenu("Edit");

pmb.add(file);
pmb.add(display);
pmb.add(edit);

file.add(new JMenuItem("Open"));
file.add(new JMenuItem("Save"));

edit.add(new JMenuItem("Add"));
edit.add(new JMenuItem("Remove"));
edit.add(new JMenuItem("Modify"));

JPanel p1 = new JPanel();
p1.add(new JLabel("Something"));
p1.add(new JTextField("Type here"));
JPanel p2 = new JPanel();
p2.add(new JLabel("Something New"));
p2.add(new JTextField("Type here again"));

f.add(p1);
f.add(p2);

}
}

最佳答案

不要在主线程中使用 swing 组件。 the swing tutorial对此进行了解释。 .

将组件添加到框架中,然后才使框架可见。

不要设置框架的大小。在使其可见之前调用 pack()

框架使用 BorderLayout。将两个面板添加到布局的中心是行不通的:只有一个面板可见。学习使用layout managers .

关于java - 无法让 JPanel 组件显示在 JFrame 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29719650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com