【发布时间】:2014-10-28 10:16:48
【问题描述】:
我正在尝试在一个面板中创建 4 列。
JLabel(Title)
JLabel JLabel
JLabel JTextArea JLabel JTextArea
...
...
...
JButton
它几乎是一个输入数据的面板。标签将类似于“速度”,然后您在旁边的文本区域中输入一个数字。不过,我遇到了 gridbaglayout 的问题。标题很大,所以看起来像这样。使用 GridBagLayout ,标题位于 (1,0) 但看起来它太大了,当我放置 JLabel1 (0,1) 和 JLabel2 (2,0) 时,它们的间距太大了,因为标题似乎已经占用了一大块。
JLabel(Title..............)
JLabel1 JLabel2
...
...
...
JButton
我希望它更像
JLabel(Title..........................................)
JLabel JLabel
JLabel JTextArea JLabel JTextArea
...
...
...
JButton
如果你想运行它的代码:
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class Example {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run(){
new Example();
}
});
}
JFrame go = new JFrame("Example");
JPanel panel = new JPanel();
JButton Button = new JButton("Button");
GridBagLayout Grid = new GridBagLayout();
JLabel Title = new JLabel("LARGEE TITLEE");
JLabel Label1 = new JLabel("Label 1");
JLabel Label2 = new JLabel("Label 2");
public Example() {
panel.setLayout(Grid);
GridBagConstraints c = new GridBagConstraints();
Title.setFont(new Font("Serif", Font.BOLD, 60));
c.insets = new Insets(10,10,10,10);
c.gridy = 0; c.gridx = 1;
panel.add(Title, c);
c.gridy = 1; c.gridx = 0;
panel.add(Label1 , c);
c.gridx = 2;
panel.add(Label2, c);
c.gridy = 2; c.gridx = 1;
panel.add(Button, c);
go.add(panel);
go.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
go.setSize(750, 750);
go.setVisible(true);
}
}
【问题讨论】:
-
为了尽快获得更好的帮助,请发布Minimal Complete Example 来证明问题。很多时候,仅仅创建示例就会暴露问题。
-
@splunebob 我很确定我找到了问题所在。我只是不知道如何解决它。 :)
标签: java layout grid jlabel jtextarea