我试图更新框架,但它没有发生。我怎么做以及当Refresh()调用时会发生什么?
public class tttt extends JFrame{
private JTable tab;
private JPanel panel1;
private void createUIComponents() {//Custom Create for tab
Object[][] data1 = {{'1'}};
Object[] data2 = {'2'};
tab = new JTable(data1, data2);
}
public void CreateFrame(){
setContentPane(panel1);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
public void Refresh(){
Object[][] data1 = {{'9'}};
Object[] data2 = {'9'};
this.tab = new JTable(data1, data2);
}
}
public class Main {
public static void main(String[] args) {
tttt Frame = new tttt();//create frame with table with '1'
Frame.CreateFrame();
Frame.Refresh();//frame doesn`t change
}
}
抱歉我的英文。
答案 0 :(得分:0)
您需要更正代码中的许多内容:
您需要正确创建组件层次结构并实例化组件层次结构中的所有对象。在您的示例中,您应该有JFrame - > JPanel - > JTable正确初始化并添加到组件层次结构中。您的代码未实例化名为JPanel
的{{1}}。您将在此行panel1
中获得Null指针异常。
应在您想要显示UI之前调用setContentPane(panel1);
和pack();
方法。应该在setVisible(true);
方法之后调用它们。同样,使用命名约定来正确命名类和方法。
我希望这有帮助!
发布代码:
Refresh()