【问题标题】:Can I do with GridLayout, JLabel, JTextField different size JTextField?我可以使用不同大小的 JTextField 来处理 GridLayout、JLabel、JTextField 吗?
【发布时间】:2013-11-15 08:45:22
【问题描述】:

如何使用 GridLayout 或其他 Gridxxx 执行此操作?

enter link description here

我想将不同大小的 JLabel 和 JTextField 添加到面板中。

有可能吗?

我有这个代码。

import java.awt.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;
class TEST_rozlozenia {

TEST_rozlozenia() {
    JPanel panel = new JPanel();
    JPanel lFields = new JPanel(new BorderLayout(2,2));
    JPanel labels = new JPanel(new GridLayout(0,1));
    labels.setBorder(new TitledBorder("Labels"));
    JPanel fields = new JPanel(new GridLayout(0,1));
    fields.setBorder(new TitledBorder("TextFields"));

    labels.add(new JLabel("Label"));
    labels.add(new JLabel("Label1"));
    fields.add(new JTextField(55));
    fields.add(new JTextField(10));

    lFields.add(labels, BorderLayout.WEST);
    lFields.add(fields, BorderLayout.EAST);

    panel.add(lFields, BorderLayout.NORTH);

    JOptionPane.showMessageDialog(null, panel);
}

public static void main(String[] args) throws Exception {
    SwingUtilities.invokeLater(new Runnable(){
        @Override
        public void run() {
            new TEST_rozlozenia();
        }
    });
}
}

怎么了?

我没有不同的文本字段大小。

【问题讨论】:

  • 你可以看看GridBagLayout
  • 也可以考虑GroupLayout,见here。
  • 但是 JTextField1 的大小必须与 JTextField2 的大小不同。所有示例的 JTextField 大小都相同。
  • 这就是你编码的内容 :-) 提示:阅读 GridLayout 的 api 文档。顺便说一句:请学习 java 命名约定并遵守它们。
  • 您发布的链接中的图片很丑,这真的是您要给用户的布局吗?

标签: java swing size jlabel jtextfield


【解决方案1】:

所有示例的 JTextField 大小都相同

然后为您创建不同大小的文本字段:

JTextField textField1 = new JTextField(10);
JTextField textField2 = new JTextField(20);

构造函数中的参数将建议文本字段的大小。因此,任何尊重组件首选大小的布局管理器都将使用此信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    相关资源
    最近更新 更多