【发布时间】:2015-10-13 22:03:46
【问题描述】:
我现在尝试了几个小时来设置我的 TextPane 的宽度。 我的代码是这样的:
private JTextPane eingabe = new JTextPane ();
private JTextPane ausgabe = new JTextPane ();
private JScrollPane scrollbar_eingabe = new JScrollPane(eingabe);
private JScrollPane scrollbar_ausgabe = new JScrollPane(ausgabe);
......
.......
private void createLayout(JComponent...arg) {
Container pane = this.getContentPane();
GroupLayout layout = new GroupLayout(pane);
pane.setLayout(layout);
layout.setAutoCreateContainerGaps(true);
layout.setAutoCreateGaps(true);
layout.setHorizontalGroup(
layout.createSequentialGroup() // ------
.addComponent(arg[0])
.addGroup(layout.createParallelGroup()
.addComponent(arg[1])
.addComponent(arg[2]))
.addGroup(layout.createParallelGroup()
.addComponent(arg[3])
.addComponent(arg[4]))
)
;
layout.setVerticalGroup(layout.createParallelGroup() // |||||
.addComponent(arg[0])
.addGroup(layout.createSequentialGroup()
.addComponent(arg[1])
.addComponent(arg[2]))
.addGroup(layout.createSequentialGroup()
.addComponent(arg[3])
.addComponent(arg[4]))
);
//gl.linkSize(pwd_text, user_text ,user, pwd, start);
pack();
}
protected void initWindow()
{
.....
createLayout(start, eingabe_text, scrollbar_eingabe,script_text, scrollbar_ausgabe);
}
第一个 arg 是一个按钮,第二个是标签,然后是第一个 Textpane/ScrollPane,然后是另一个标签和另一个 ScrollPane。 到目前为止,组件的排列工作正常,但我真的不明白如何设置其中一个文本/滚动窗格的宽度。 第一个窗格的最大宽度应为第二个窗格宽度的 1/3。
我的程序中的一切都工作正常,但我只是愚蠢地设置了这个 Scrollpane 的宽度:(
编辑: 它应该像这样锁定:
A1 A2 A4
A3 A5
And A3 should have the width A5/3.
编辑: 好的,我解决了这个问题:
维度 d = new Dimension();
d.height = 610;
d.width = 250;
arg[2].setPreferredSize(d);
Dimension d1 = new Dimension();
d1.height = 610;
d1.width = d.width * 4;
arg[4].setPreferredSize(d1);
layout.setHorizontalGroup(
layout.createSequentialGroup() // ------
.addComponent(arg[0])
.addGroup(layout.createParallelGroup()
.addComponent(arg[1])
.addComponent(arg[2], GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createParallelGroup()
.addComponent(arg[3])
.addComponent(arg[4], GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE))
)
;
layout.setVerticalGroup(layout.createParallelGroup() // |||||
.addComponent(arg[0])
.addGroup(layout.createSequentialGroup()
.addComponent(arg[1])
.addComponent(arg[2], GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(arg[3])
.addComponent(arg[4], GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE))
);
在 java 中使用 grouplayout 和其他布局确实令人困惑;D
【问题讨论】:
标签: java grouplayout