gpt4 book ai didi

contentPanel 内的 Java Swing 调整大小面板

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

我在框架中有以下结构:

框架->contentPane面板->topPanel面板->表格

这是代码:

private JPanel contentPane;
private JTable table;
private JPanel topPanel;

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ShowList frame = new ShowList();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

public ShowList() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 675, 433);

contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

topPanel = new JPanel();
topPanel.setBounds(76, 76, 491, 245);
contentPane.add(topPanel);
topPanel.setLayout(null);

table = new JTable();
table.setBounds(0, 0, 491, 245);
topPanel.add(table);
}

我想要实现的是,当我调整框架大小使窗口变大时,topPanel 及其包含的表格也会调整大小,并且不会保持与调整框架大小之前相同的大小。我已阅读有关布局的内容,但无法使其工作。有什么建议吗?

最佳答案

使用LayoutManager来控制框架内组件的大小和位置。避免将面板的布局管理器设置为 null

我建议您查看此链接:"A Visual Guide to Layout Managers"了解有关您可以使用的不同类型布局的更多信息。

例如,在您的代码中,我将使用 BorderLayout:

contentPane.setLayout(new BorderLayout());

...

contentPane.add(topPanel, BorderLayout.CENTER);
topPanel.setLayout(new BorderLayout());

...

topPanel.add(table, BorderLayout.Center);

顺便说一句,我想你的类 ShowList 扩展了 JFrame 因为像 setDefaultCloseOperation 这样的方法如果没有的话会给你一个错误,对吧?

希望对您有所帮助。

关于contentPanel 内的 Java Swing 调整大小面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37126156/

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