Java 将jlabel和JTextField与JTable放在同一帧中

Java 将jlabel和JTextField与JTable放在同一帧中,java,swing,jlabel,jtextfield,layout-manager,Java,Swing,Jlabel,Jtextfield,Layout Manager,我试图在JTable或类似的GridLayout下放置一些文本字段和标签 在字段中键入数据时,我希望将它们传递到表中。我现在有一个面板中的文本字段和标签,但想在上面添加一个表 我尝试使用JPanel,JFrame,JTable。但我无法让他们一起工作 Swing/AWT导入有哪些经验,对获得此结果的最佳方法有何建议?您可以。。。。 使用BorderLayout,将JTable(包装在JScrollPane中)保留在NORTH位置 使用FlowLayout或GridBagLayout将包含JLab

我试图在
JTable
或类似的
GridLayout
下放置一些文本字段和标签

在字段中键入数据时,我希望将它们传递到表中。我现在有一个面板中的文本字段和标签,但想在上面添加一个表

我尝试使用
JPanel
JFrame
JTable
。但我无法让他们一起工作

Swing/AWT导入有哪些经验,对获得此结果的最佳方法有何建议?

您可以。。。。 使用
BorderLayout
,将
JTable
(包装在
JScrollPane
中)保留在
NORTH
位置

使用
FlowLayout
GridBagLayout
将包含
JLabel
JTextField
JPanel
添加到
南部
位置

你可以。。。 使用
GridBagLayout
,将所有组件添加到单个面板中

您应该查看更多详细信息……

您可以。。。。 使用
BorderLayout
,将
JTable
(包装在
JScrollPane
中)保留在
NORTH
位置

使用
FlowLayout
GridBagLayout
将包含
JLabel
JTextField
JPanel
添加到
南部
位置

你可以。。。 使用
GridBagLayout
,将所有组件添加到单个面板中


您应该查看更多详细信息…

这可以通过
边框布局轻松实现。将
JLabel
JTextField
添加到具有默认
FlowLayout
JPanel
中,并使用适当的
BorderLayout
位置将
JPanel
JTabel
添加到框架中

像这样的

    JTable table = new JTable(data, cols);
    JTextField jtf = new JTextField(20);
    JLabel label = new JLabel("This is a text field");
    JPanel panel = new JPanel();
    panel.add(label);
    panel.add(jtf);

    JFrame frame = new JFrame();
    frame.add(panel, BorderLayout.SOUTH);                     <----
    frame.add(new JScrollPane(table), BorderLayout.CENTER);   <----
String[] cols = {"Col 1, "Col 2", "Col 3};
DefaultTableModel model = new DefaultTableModel(cols, 0);
JTable table = new JTabel(model);

要动态添加行,只需使用基本的
DefaultTableModel
。如果你知道你的列名,你可以这样做

    JTable table = new JTable(data, cols);
    JTextField jtf = new JTextField(20);
    JLabel label = new JLabel("This is a text field");
    JPanel panel = new JPanel();
    panel.add(label);
    panel.add(jtf);

    JFrame frame = new JFrame();
    frame.add(panel, BorderLayout.SOUTH);                     <----
    frame.add(new JScrollPane(table), BorderLayout.CENTER);   <----
String[] cols = {"Col 1, "Col 2", "Col 3};
DefaultTableModel model = new DefaultTableModel(cols, 0);
JTable table = new JTabel(model);
然后,要添加行,只需在按钮
actionPerformed
方法中执行类似的操作

public void actionPerformed(ActionEvent e) {
    String data1 = textField1.getTex();
    String data2 = textField2.getTex();
    String data3 = textField3.getTex();

    Object[] row = {dat1, data2, data3};
    model.addRow(row);
}

只需在模型中添加行并动态更新表

这可以通过
边框布局轻松实现。将
JLabel
JTextField
添加到具有默认
FlowLayout
JPanel
中,并使用适当的
BorderLayout
位置将
JPanel
JTabel
添加到框架中

像这样的

    JTable table = new JTable(data, cols);
    JTextField jtf = new JTextField(20);
    JLabel label = new JLabel("This is a text field");
    JPanel panel = new JPanel();
    panel.add(label);
    panel.add(jtf);

    JFrame frame = new JFrame();
    frame.add(panel, BorderLayout.SOUTH);                     <----
    frame.add(new JScrollPane(table), BorderLayout.CENTER);   <----
String[] cols = {"Col 1, "Col 2", "Col 3};
DefaultTableModel model = new DefaultTableModel(cols, 0);
JTable table = new JTabel(model);

要动态添加行,只需使用基本的
DefaultTableModel
。如果你知道你的列名,你可以这样做

    JTable table = new JTable(data, cols);
    JTextField jtf = new JTextField(20);
    JLabel label = new JLabel("This is a text field");
    JPanel panel = new JPanel();
    panel.add(label);
    panel.add(jtf);

    JFrame frame = new JFrame();
    frame.add(panel, BorderLayout.SOUTH);                     <----
    frame.add(new JScrollPane(table), BorderLayout.CENTER);   <----
String[] cols = {"Col 1, "Col 2", "Col 3};
DefaultTableModel model = new DefaultTableModel(cols, 0);
JTable table = new JTabel(model);
然后,要添加行,只需在按钮
actionPerformed
方法中执行类似的操作

public void actionPerformed(ActionEvent e) {
    String data1 = textField1.getTex();
    String data2 = textField2.getTex();
    String data3 = textField3.getTex();

    Object[] row = {dat1, data2, data3};
    model.addRow(row);
}

只需通过动态更新表向模型中添加行

这是一个非常简单的项目,应该尽可能简单。如果我填写字段,我想向表中添加一行数据并计算一些内容。GridBagLayout是一个很好的解决方案吗?向表中添加数据是不相关的,但是是的,GridBagLayout可以让您将表添加到两个字段上方……这是一个非常简单的项目,应该尽可能简单。如果我填写字段,我想向表中添加一行数据并计算一些内容。GridBagLayout是一个很好的解决方案吗?将数据添加到表中是不相关的,但是是的,GridBagLayout可以让您将表添加到两个字段上方…非常感谢!我使用部分代码将所有字段和标签传递给我自己的项目。我现在有我想要的。如果有助于解决问题,请给出答案。非常感谢!我使用部分代码将所有字段和标签传递给我自己的项目。我现在有了我想要的。如果它有助于解决问题,请给出答案。人们通常用来实现复杂的布局。人们通常用来实现复杂的布局。