代码之家  ›  专栏  ›  技术社区  ›  Bick

在IntelliJ IDEA中使用JTable

  •  4
  • Bick  · 技术社区  · 14 年前


    我在intellij中创建了一个gui形式的jtable,但没有看到任何数据。 代码有效。
    我用了最常见的例子
    String[] columnNames = {"First Name", "Last Name"};
    Object[][] data = {{"Kathy", "Smith"},{"John", "Doe"}

    JTable table = new JTable(data, columnNames);
    但我没有数据。
    这是因为布局管理器吗?

    有什么好的jtable+gui形式的intellij示例吗?

    2 回复  |  直到 14 年前
        1
  •  11
  •   CrazyCoder    5 年前

    当使用IDEA GUI设计器时,如果您有 new JTable(...) 在您的代码中,它将覆盖IDEA创建的表对象,并且设计器中为表配置的所有属性都将丢失。

    所以,这里有两种方法。一种是依赖IDEA创建表并设置其属性,然后使用 table.setModel(dataModel);

    第二种方法是从代码中动态创建表,然后将该表添加到现有的JSCRelan窗格或窗体上的其他面板中。 scrollPane.setViewportView(myTable);

    IDEA也有更先进的方法称为 自定义创建 . 如果对表单上的JTable启用此复选框,IDEA将添加 createUIComponents() 方法的绑定类,您可以在其中手动创建此组件,如 ... = new JTable(...) .

    你可以 download the complete sample project 尝试不同的方法。

        2
  •  1
  •   duffymo    14 年前

    package swing;
    
    import javax.swing.*;
    
    /**
     * JTableTest
     * User: Michael
     * Date: 11/7/10
     * Time: 4:49 PM
     */
    public class JTableTest
    {
        public static void main(String[] args)
        {
            JFrame frame = new JFrame("JTable Test");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            JTable table = createTable();
            JScrollPane scrollPane = new JScrollPane(table);
            frame.getContentPane().add(scrollPane);
            frame.pack();
            frame.setVisible(true);
        }
    
        public static JTable createTable()
        {
            String[] columnNames = {"First Name", "Last Name"};
            Object[][] data = {{"Kathy", "Smith"},{"John", "Doe"}};
            JTable table = new JTable(data, columnNames);
            table.setFillsViewportHeight(true);
    
            return table;
        }
    }