当我将GUI窗口大小增加到完全时,组件将返回到标准布局

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当我将GUI窗口大小增加到完全时,组件将返回到标准布局相关的知识,希望对你有一定的参考价值。

当我将窗口大小增加到完整时,我的组件会回到标准布局(jtable,button1,button2,button3),依此类推。所以我想知道我的代码是否正确以及我如何减少窗口大小。

    JTabbedPane jtabbed = new JTabbedPane(JTabbedPane.TOP);


JPanel panel=new JPanel();
tabellinnhold = new DefaultTableModel(defaulttabell,kolonnenavn);
posttabell = new JTable(tabellinnhold);
rullefelt = new JScrollPane(posttabell);

koble = new JButton("koble til");
lukke = new JButton("lukke");
hente = new JButton("Hente data");
avslutt = new JButton("Avslutt");  
panel.add(rullefelt,BorderLayout.CENTER);
panel.add(koble,BorderLayout.SOUTH);
panel.add(lukke,BorderLayout.SOUTH);
panel.add(hente,BorderLayout.SOUTH);
panel.add(avslutt,BorderLayout.SOUTH);
//action listener
koble.addActionListener(this);
lukke.addActionListener(this);
hente.addActionListener(this);
avslutt.addActionListener(this);
jtabbed.add("se post",panel);
add(jtabbed);

//////////////////////////////////////////////////

Grensesnitt p = new Grensesnitt();


p.setDefaultCloseOperation(EXIT_ON_CLOSE);
p.GUIcode();
p.setTitle("title");
p.setSize(500,700);
p.setVisible(true);
答案
JPanel panel=new JPanel();
...
panel.add(rullefelt,BorderLayout.CENTER);
panel.add(koble,BorderLayout.SOUTH);
panel.add(lukke,BorderLayout.SOUTH);
panel.add(hente,BorderLayout.SOUTH);
panel.add(avslutt,BorderLayout.SOUTH);

JPanel的默认布局管理器是FlowLayout,它只是在一行上显示所有组件。

你不能只使用BorderLayout约束并期望它工作。

如果你想使用BorderLayout,那么代码应该是:

//JPanel panel=new JPanel();
JPanel panel=new JPanel( new BorderLayout() );

此外,您不能将4个组件添加到BorderLayout的“SOUTH”。您只能添加单个组件。因此,您需要创建一个子面板并将组件添加到第一个:

JPanel south = new JPanel();
south.add(koble);
south.add(lukke);
south.add(hente);
south.add(avslutt);
panel.add(south, Borderlayout.SOUTH);

阅读Using Layout Manager上Swing教程中的部分,了解更多信息和工作示例,以帮助您入门。

保留指向教程的链接,以获取所有Swing基础知识的示例。

以上是关于当我将GUI窗口大小增加到完全时,组件将返回到标准布局的主要内容,如果未能解决你的问题,请参考以下文章

GUI 测试

为啥当我将其大小初始化为 5 并且只给出 5 个元素时,向量的大小会增加到 10?

如何创建自定义 Flex 4 组件

底部的标签随着文本编辑器字体大小的增加而消失

用于固定组件位置和可滚动窗口的 Java GUI 布局

GUI组件添加布局设置