Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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 JTable不';添加新行后不刷新_Java_Swing_Jtable_Refresh - Fatal编程技术网

Java JTable不';添加新行后不刷新

Java JTable不';添加新行后不刷新,java,swing,jtable,refresh,Java,Swing,Jtable,Refresh,我在JScrollPane中有一个JTable。调用应该填充表的函数后,我看不到任何更改!我试过table.repaint(),model.fireTableDataChanged(),可能还有其他一些我记不起来的东西,都没用。我做错了什么 我的职能: public static void fillVodicTable(JTable table){ DefaultTableModel model=new DefaultTableModel(); //also tried (Defaul

我在JScrollPane中有一个JTable。调用应该填充表的函数后,我看不到任何更改!我试过
table.repaint()
model.fireTableDataChanged()
,可能还有其他一些我记不起来的东西,都没用。我做错了什么

我的职能:

public static void fillVodicTable(JTable table){

    DefaultTableModel model=new DefaultTableModel(); //also tried (DefaultTableModel)table.getModel();
    table.setModel(model);
    model.setColumnIdentifiers(new String[]{"Ime", "Priimek", "Epošta", "Datum rojstva", "Licenca", "Jeziki"});
    String [] row={"a","b","c","d","e","f"};

    model.addRow(row);
}
1) 对于
DefaultTableModel

2) 没有理由调用
table.repaint()
,它是无用的

3) (Jezik j:v.getTuji_jeziki())行[5]+=“,”+j.toString())的
是什么您的问题可能超过100%**个

4)
DefaultTableModel
适用于所有情况,但只需要在EDT上更新,换句话说,这是所有Swing JC组件的共同问题

5) 为了更快地获得更好的帮助,请使用

6) EDT==

7) SSCCE

  • DefaultTableModel

  • model.addRow(row)

  • 自给自足的

  • 正确的

  • 范例

然后

import java.awt.*;
导入java.awt.event.*;
导入java.util.Random;
导入javax.swing.*;
导入javax.swing.border.LineBorder;
导入javax.swing.table.DefaultTableModel;
导入javax.swing.table.TableCellRenderer;
公共类DefaultTableModelDemo{
公共静态最终字符串[]列名称={
“星期一”、“星期二”、“星期三”、“星期四”、“星期五”
};
private DefaultTableModel=new DefaultTableModel(列名称,0);
专用JTable表=新JTable(模型);
private JPanel mainPanel=new JPanel(new BorderLayout());
私有随机=新随机();
公共DefaultTableModelDemo(){
JButton addDataButton=新JButton(“添加数据”);
JPanel buttonPanel=新的JPanel();
buttonPanel.add(添加数据按钮);
addDataButton.addActionListener(新ActionListener(){
@凌驾
已执行的公共无效操作(操作事件e){
addDataActionPerformed();
}
});
模型=新的DefaultTableModel(列名称,0){
私有静态最终长serialVersionUID=1L;
@凌驾
公共类getColumnClass(int列){
返回getValueAt(0,列).getClass();
}
};
表=新JTable(型号){
私有静态最终长serialVersionUID=1L;
@凌驾
公共组件预渲染器(TableCellRenderer渲染器,int行,int列){
组件c=super.prepareRenderer(呈现器、行、列);
如果(isRowSelected(行)和isColumnSelected(列)){
((JComponent)c).设置顺序(新行边框(颜色为红色));
}
返回c;
}
};
添加(新的JScrollPane(表),BorderLayout.CENTER);
主面板。添加(按钮面板,边界布局。南);
}
私有void addDataActionPerformed(){
对于(int i=0;i<5;i++){
Object[]行=新对象[列名称.length];
对于(int j=0;j1)对于
DefaultTableModel

2) 没有理由调用
table.repaint()
,它是无用的

3) (Jezik j:v.getTuji_jeziki())行[5]+=“,”+j.toString())的
是什么您的问题可能超过100%**个

4)
DefaultTableModel
适用于所有情况,但只需要在EDT上更新,换句话说,这是所有Swing JC组件的共同问题

5) 为了更快地获得更好的帮助,请使用

6) EDT==

7) SSCCE

  • DefaultTableModel

  • model.addRow(row)

  • 自给自足的

  • 正确的

  • 范例

然后

import java.awt.*;
导入java.awt.event.*;
导入java.util.Random;
导入javax.swing.*;
导入javax.swing.border.LineBorder;
导入javax.swing.table.DefaultTableModel;
导入javax.swing.table.TableCellRenderer;
公共类DefaultTableModelDemo{
公共静态最终字符串[]列名称={
“星期一”、“星期二”、“星期三”、“星期四”、“星期五”
};
private DefaultTableModel=new DefaultTableModel(列名称,0);
专用JTable表=新JTable(模型);
private JPanel mainPanel=new JPanel(new BorderLayout());
私有随机=新随机();
公共DefaultTableModelDemo(){
JButton addDataButton=新JButton(“添加数据”);
JPanel buttonPanel=新的JPanel();
buttonPanel.add(添加数据按钮);
addDataButton.addActionListener(新ActionListener(){
@凌驾
已执行的公共无效操作(操作事件e){
addDataActionPerformed();
}
});
模型=新的DefaultTableModel(列名称,0){
私有静态最终长serialVersionUID=1L;
@凌驾
公共类getColumnClass(int列){
返回getValueAt(0,列
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.*;
import javax.swing.border.LineBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;

public class DefaultTableModelDemo {

    public static final String[] COLUMN_NAMES = {
        "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"
    };
    private DefaultTableModel model = new DefaultTableModel(COLUMN_NAMES, 0);
    private JTable table = new JTable(model);
    private JPanel mainPanel = new JPanel(new BorderLayout());
    private Random random = new Random();

    public DefaultTableModelDemo() {
        JButton addDataButton = new JButton("Add Data");
        JPanel buttonPanel = new JPanel();
        buttonPanel.add(addDataButton);
        addDataButton.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                addDataActionPerformed();
            }
        });
        model = new DefaultTableModel(COLUMN_NAMES, 0) {

            private static final long serialVersionUID = 1L;

            @Override
            public Class getColumnClass(int column) {
                return getValueAt(0, column).getClass();
            }
        };
        table = new JTable(model) {

            private static final long serialVersionUID = 1L;

            @Override
            public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
                Component c = super.prepareRenderer(renderer, row, column);
                if (isRowSelected(row) && isColumnSelected(column)) {
                    ((JComponent) c).setBorder(new LineBorder(Color.red));
                }

                return c;
            }
        };
        mainPanel.add(new JScrollPane(table), BorderLayout.CENTER);
        mainPanel.add(buttonPanel, BorderLayout.SOUTH);
    }

    private void addDataActionPerformed() {
        for (int i = 0; i < 5; i++) {
            Object[] row = new Object[COLUMN_NAMES.length];
            for (int j = 0; j < row.length; j++) {
                row[j] = random.nextInt(5);
            }
            model.addRow(row);
        }
    }

    public JComponent getComponent() {
        return mainPanel;
    }

    public static void main(String[] args) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                JFrame frame = new JFrame("DefaultTableModelDemo");
                frame.getContentPane().add(new DefaultTableModelDemo().getComponent());
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }
}
jTable1.setAutoCreateColumnsFromModel(true);
model.fireTableDataChanged();
void update_table() throws SQLException {
   rs=statement.executeQuery("select * from details");
    jTable1.setModel(DbUtils.resultSetToTableModel(rs));

}
public class DBConnect {

Connection connection = null;

public Connection getConnection() {
    try {
        Class.forName("com.mysql.jdbc.Driver");
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
        System.out.println("connection successfully");
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return connection;
}
}
con=new DBConnect();
statement=con.getConnection().createStatement();
void update_table() throws SQLException{
    rs=statement.executeQuery("select * from details");
    jTable1.setModel(DbUtils.resultSetToTableModel(rs));
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

   try {
       Object name=jTextField1.getText();
       String sql="insert into details (name) values('"+name+"')";
        int  resultset=statement.executeUpdate(sql);
        update_table();
   } catch (SQLException ex) {
       Logger.getLogger(update.class.getName()).log(Level.SEVERE, null, ex);
   }
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
class JTableDemo extends JFrame implements ActionListener
{

JTable jt;
DefaultTableModel model;
JButton btn;
String[] cols={"Dno","DName","Loc"};
private JPanel mainPanel = new JPanel(new BorderLayout());

public JTableDemo()
{
    model=new DefaultTableModel(cols,0);
    btn=new JButton("Add Record");
    btn.addActionListener(this);
    jt=new JTable(model);
    btn.setBounds(10, 10, 150, 40);
    mainPanel.setBounds(10,200,300,200);
    add(btn);
    mainPanel.add(new JScrollPane(jt));
    add(mainPanel);
    setLayout(null);
    setSize(500, 600);
    setVisible(true);
}
public JComponent getComponent() {
    return mainPanel;
}
public void actionPerformed(ActionEvent e) {
    Object[] row = new Object[3];
    row[0]="10";
    row[1]="SW";
    row[2]="PKL";
    model.addRow(row);
}
public static void main(String[] args)
{
    new JTableDemo();
}