我在intellij中创建了一个gui形式的jtable,我没有看到任何数据。最奇怪的是,当我在intellij中没有创建表单的情况下使用它时,代码可以工作。
我用了一个最常见的例子
String[] columnNames = {"First Name", "Last Name"};
Object[][] data = {{"Kathy", "Smith"},{"John", "Doe"}
然后
JTable table = new JTable(data, columnNames);
但是我没有得到任何数据。
这是因为布局管理器吗?
在继续使用intellij gui和jtable方面有什么帮助吗?
有什么好的jtable+gui form intellij示例吗?
发布于 2010-11-08 07:33:30
当使用IDEA GUI设计器时,会自动为您创建JTable,如果您的代码中包含new JTable(...),它将覆盖IDEA创建的表对象,并且在设计器中为表配置的所有属性都将丢失。
因此,这里有两种方法。一种是依靠IDEA创建表并设置其属性,然后使用table.setModel(dataModel);从dataModel向表提供数据。
第二种方法是从代码动态创建表,然后通过scrollPane.setViewportView(myTable);将该表添加到现有的JScrollPane或表单上的其他面板中。
IDEA还有更高级的方法,称为自定义创建。如果为窗体上的JTable启用此复选框,则IDEA会将createUIComponents()方法添加到绑定类中,您可以像... = new JTable(...)一样在绑定类中手动创建此组件。
您可以使用不同的方法进行download the complete sample project和实验。
发布于 2010-11-08 06:30:46
这对我来说在IntelliJ中是有效的:
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;
}
}https://stackoverflow.com/questions/4119778
复制相似问题