java - 将 JTable 定位到 JFrame 内 JPanel 中的 (x,y) 位置

标签 java swing

我想将 JTable 放置在屏幕右中心部分的 JPanel 内,但无法在 JPanel 内显示 JTable,仅显示空白 JPanel。请帮助。

TableModel tmodel = new DefaultTableModel(arr,columns)
{
public Class getColumnClass (int column) 
{
Class returnValue;
if((column >=0) && (column<getColumnCount()))
{
returnValue = getValueAt(0,column).getClass();
}
else 
{ 
returnValue = Object.class;
}
return returnValue;
}
};
JTable jtable = new JTable(tmodel);
RowSorter <TableModel> rsorter = new TableRowSorter <TableModel> (tmodel);
jtable.setRowSorter(rsorter);
JScrollPane jspane = new JScrollPane(jtable);
jp.add(jtable);
jp.add(jspane,BorderLayout.CENTER);
jp.setLayout(null);
jp.setLocation(700,150);
jp.setSize(600,350);
jf.getContentPane().add(jp);
}
};
EventQueue.invokeLater(runner);
}

最佳答案

您的代码中有两个问题。第一个:您尝试添加 JTable 实例两次,第一次添加到滚动 Pane 中,第二次添加到面板中。 第二个你应该设置你的布局,你不能使用空布局。 示例代码如下所示:

    jp.setLayout(new BorderLayout());
    JTable jtable = new JTable(tmodel);
    RowSorter <TableModel> rsorter = new TableRowSorter<>(tmodel);
    jtable.setRowSorter(rsorter);
    JScrollPane jspane = new JScrollPane();
    jspane.setViewportView(jtable);
    jp.add(jspane,BorderLayout.CENTER);     
    jp.setLocation(700,150);
    jp.setSize(600,350);
    jf.getContentPane().add(jp);

关于java - 将 JTable 定位到 JFrame 内 JPanel 中的 (x,y) 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35826774/

相关文章:

java - 通过套接字连接 Android 应用程序(作为客户端)和在我的机器上运行的应用程序(作为服务器)

java - 使用变量作为对象名调用对象方法

java - 在java中使用JButton向客户端发送消息

java - 使用操作更新另一个类中的实例变量

java - 可选的 <Integer> 不能转换为 Int(用于 GUI 进度条)

java - 如何使用拦截 url 模式和访问?

java - 指南针应用程序无法实例化 Activity

java - 使用注释来记录参数传递策略?

java - 清除java中通过class.forName加载的类

java - 为什么 JLabel 不遵循 GridLayout 以及如何消除之间的间隙?