Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Swing中为JDialog重新绘制?_Java_Swing_Repaint_Jdialog - Fatal编程技术网

Java 如何在Swing中为JDialog重新绘制?

Java 如何在Swing中为JDialog重新绘制?,java,swing,repaint,jdialog,Java,Swing,Repaint,Jdialog,如何在Swing中为JDialog重新绘制? 若我点击JDialog中的convert按钮,我需要更改JDialog的GUI设计,但它并没有发生?他们有什么解决办法吗 _convertAction = new AbstractAction() { public void actionPerformed(ActionEvent e) { String para = new String(); _task.setBookTyp

如何在Swing中为JDialog重新绘制? 若我点击JDialog中的convert按钮,我需要更改JDialog的GUI设计,但它并没有发生?他们有什么解决办法吗

    _convertAction = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            String para = new String(); 
            _task.setBookTypeId(13);
             initComponents();
           //   validate();
           //   repaint();
            setVisible(true);
        }
      };
我正在设置预订类型id为13

if(_task.getBookTypeId()== 1){
    String colnames[] = {"Leg","Departure", "Date","Time", "Arrival","Date", "Time","How","Aircraft","PIC","Copilot"};
    MyTableModel mytablemodel = new MyTableModel(colnames);
    legdetailsTable = new JTable(mytablemodel);
    legdetailsTable.setRowSelectionAllowed(true);
}else {
    System.out.println("Brokered booking table");   
    String   colnames[] = {"Leg","Departure", "Date","Time", "Arrival","Date", "Time","How"};
    MyTableModel mytablemodel = new MyTableModel(colnames);
    legdetailsTable = new JTable(mytablemodel);
    legdetailsTable.setRowSelectionAllowed(true);
}

我正在使用Id在initcomponents方法中更改组件。

您可以获取当前组件或任何组件的窗口,然后调用
repaint()


您可以获取当前组件或任何组件的窗口,然后调用
repaint()

而不是

legdetailsTable = new JTable(mytablemodel);

您可以重新创建JTable,但新的JTable不会添加到布局中,而是添加到

legdetailsTable = new JTable(mytablemodel);

重新创建JTable,但新的JTable不会添加到布局中

@Jonas如果OP发布了一个JTable,它将保证相关代码存在。但在他们解决问题之前,大多数人都不知道相关的代码是什么。@Jonas如果OP发布了一条消息,它保证相关的代码存在。但在他们解决问题之前,大多数人都不知道相关代码是什么。
legdetailsTable.setModel(mytablemodel);