Java 如何刷新JInternalFrame或JTable
我有Java 如何刷新JInternalFrame或JTable,java,swing,jtable,jinternalframe,Java,Swing,Jtable,Jinternalframe,我有JInternalFrame包含JTable。如何刷新JInternalFrame 或者JTable当单击JButton-->update时,最简单的方法是在actionlistener中调用.repaint()。例如: public class RefreshingButton extends JButton implements ActionListener{ private static final long serialVersionUID = 1L; private
JInternalFrame
包含JTable
。如何刷新JInternalFrame
或者
JTable
当单击JButton-->update
时,最简单的方法是在actionlistener中调用.repaint()
。例如:
public class RefreshingButton extends JButton implements ActionListener{
private static final long serialVersionUID = 1L;
private final JComponent componentToRefsesh;
public RefreshingButton(JComponent toRefresh) {
super("Refresh JTable");
this.componentToRefsesh = toRefresh;
this.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
componentToRefsesh.repaint();
}
}
最好的方法是使用模型-视图-控制器设计模式 更新
表格模型时,JTable
应自动刷新。如果没有,则应更正您的TableModel
,例如。请编辑您的问题,以包含显示您描述的问题的。可能创建TableModel
并使用fireTableStructureChanged()
AFAIK重新绘制用于图形(2D),在更改到组件树后通知LayoutManager,doLayout和notifyno的情况也一样。a) 不要将JSomething子类化,而是使用它b)不要公开不用于公共用途的api(这里是actionListener回调),而是在内部实例化/实现侦听器并使用它c)大多数时候,似乎需要重新绘制,但设置有问题