Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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 state=ConnectPostGRESql.getInstance(“postgres”).createStatement(ResultSet.TYPE\u SCROLL\u不敏感,ResultSet.CONCUR\u只读); res=state.executeQuery(查询); }捕获(SQLException e1){ System.out.println(nomps+“ajoutéavec success.”; } query=“从产品中选择*”; 表格创建(查询); 名称setText(“”); cat.setText(“”); prix.setText(“”); } } } 类SearchListener实现ActionListener{ @凌驾 已执行的公共无效操作(操作事件e){ //TODO自动生成的方法存根 字符串列; 如果(!searchText.getText().equals(“”){ 开关(String.valueOf(combo.getSelectedItem())) { 案例“ID”: column=“num_id”; 打破 案例“Nom Produit”: column=“nom_produit”; 打破 “分类”案例: column=“cat”; 打破 “马加辛”案: column=“mag”; 打破 “大奖赛”案例: column=“prix”; 打破 案例“代码Magasin”: column=“code\u magasin”; 打破 违约: column=“日期”; 打破 } 如果(!column.equals(“prix”)和(&!column.equals(“num_id”)){ query=“从产品中选择*,其中“+列+”类似“%”“+searchText.getText().toUpperCase().trim()+“%””; }否则{ query=“从产品中选择*,其中“+column+”=”+searchText.getText().toUpperCase().trim()+”; } }否则{ query=“从产品中选择*”; } 表格创建(查询); } } 类RemovelListener实现ActionListener{ @凌驾 已执行的公共无效操作(操作事件e){ //TODO自动生成的方法存根 如果(!removeText.getText().equals(“”){ 声明状态; 结果集res; 试一试{ state=ConnectPostGRESql.getInstance(“postgres”).createStatement(ResultSet.TYPE\u SCROLL\u不敏感,ResultSet.CONCUR\u只读); res=state.executeQuery(“从产品中删除,其中num_id=“+removeText.getText()); }捕获(SQLException e1){ System.out.println(“Entrée supplimeée avec success.”; } } 表格创建(“从产品中选择*); } } 私有void表创建(字符串查询){ //TODO自动生成的方法存根 试一试{ 语句状态=ConnectPostGRESql.getInstance(“postgres”).createStatement(ResultSet.TYPE\u SCROLL\u不敏感,ResultSet.CONCUR\u只读); ResultSet res=state.executeQuery(查询); ResultSetMetaData meta=res.getMetaData(); Object[]columnNames=新对象[meta.getColumnCount()]; 对于(int i=1;i_Java_Swing_Jtable - Fatal编程技术网

Java state=ConnectPostGRESql.getInstance(“postgres”).createStatement(ResultSet.TYPE\u SCROLL\u不敏感,ResultSet.CONCUR\u只读); res=state.executeQuery(查询); }捕获(SQLException e1){ System.out.println(nomps+“ajoutéavec success.”; } query=“从产品中选择*”; 表格创建(查询); 名称setText(“”); cat.setText(“”); prix.setText(“”); } } } 类SearchListener实现ActionListener{ @凌驾 已执行的公共无效操作(操作事件e){ //TODO自动生成的方法存根 字符串列; 如果(!searchText.getText().equals(“”){ 开关(String.valueOf(combo.getSelectedItem())) { 案例“ID”: column=“num_id”; 打破 案例“Nom Produit”: column=“nom_produit”; 打破 “分类”案例: column=“cat”; 打破 “马加辛”案: column=“mag”; 打破 “大奖赛”案例: column=“prix”; 打破 案例“代码Magasin”: column=“code\u magasin”; 打破 违约: column=“日期”; 打破 } 如果(!column.equals(“prix”)和(&!column.equals(“num_id”)){ query=“从产品中选择*,其中“+列+”类似“%”“+searchText.getText().toUpperCase().trim()+“%””; }否则{ query=“从产品中选择*,其中“+column+”=”+searchText.getText().toUpperCase().trim()+”; } }否则{ query=“从产品中选择*”; } 表格创建(查询); } } 类RemovelListener实现ActionListener{ @凌驾 已执行的公共无效操作(操作事件e){ //TODO自动生成的方法存根 如果(!removeText.getText().equals(“”){ 声明状态; 结果集res; 试一试{ state=ConnectPostGRESql.getInstance(“postgres”).createStatement(ResultSet.TYPE\u SCROLL\u不敏感,ResultSet.CONCUR\u只读); res=state.executeQuery(“从产品中删除,其中num_id=“+removeText.getText()); }捕获(SQLException e1){ System.out.println(“Entrée supplimeée avec success.”; } } 表格创建(“从产品中选择*); } } 私有void表创建(字符串查询){ //TODO自动生成的方法存根 试一试{ 语句状态=ConnectPostGRESql.getInstance(“postgres”).createStatement(ResultSet.TYPE\u SCROLL\u不敏感,ResultSet.CONCUR\u只读); ResultSet res=state.executeQuery(查询); ResultSetMetaData meta=res.getMetaData(); Object[]columnNames=新对象[meta.getColumnCount()]; 对于(int i=1;i

Java state=ConnectPostGRESql.getInstance(“postgres”).createStatement(ResultSet.TYPE\u SCROLL\u不敏感,ResultSet.CONCUR\u只读); res=state.executeQuery(查询); }捕获(SQLException e1){ System.out.println(nomps+“ajoutéavec success.”; } query=“从产品中选择*”; 表格创建(查询); 名称setText(“”); cat.setText(“”); prix.setText(“”); } } } 类SearchListener实现ActionListener{ @凌驾 已执行的公共无效操作(操作事件e){ //TODO自动生成的方法存根 字符串列; 如果(!searchText.getText().equals(“”){ 开关(String.valueOf(combo.getSelectedItem())) { 案例“ID”: column=“num_id”; 打破 案例“Nom Produit”: column=“nom_produit”; 打破 “分类”案例: column=“cat”; 打破 “马加辛”案: column=“mag”; 打破 “大奖赛”案例: column=“prix”; 打破 案例“代码Magasin”: column=“code\u magasin”; 打破 违约: column=“日期”; 打破 } 如果(!column.equals(“prix”)和(&!column.equals(“num_id”)){ query=“从产品中选择*,其中“+列+”类似“%”“+searchText.getText().toUpperCase().trim()+“%””; }否则{ query=“从产品中选择*,其中“+column+”=”+searchText.getText().toUpperCase().trim()+”; } }否则{ query=“从产品中选择*”; } 表格创建(查询); } } 类RemovelListener实现ActionListener{ @凌驾 已执行的公共无效操作(操作事件e){ //TODO自动生成的方法存根 如果(!removeText.getText().equals(“”){ 声明状态; 结果集res; 试一试{ state=ConnectPostGRESql.getInstance(“postgres”).createStatement(ResultSet.TYPE\u SCROLL\u不敏感,ResultSet.CONCUR\u只读); res=state.executeQuery(“从产品中删除,其中num_id=“+removeText.getText()); }捕获(SQLException e1){ System.out.println(“Entrée supplimeée avec success.”; } } 表格创建(“从产品中选择*); } } 私有void表创建(字符串查询){ //TODO自动生成的方法存根 试一试{ 语句状态=ConnectPostGRESql.getInstance(“postgres”).createStatement(ResultSet.TYPE\u SCROLL\u不敏感,ResultSet.CONCUR\u只读); ResultSet res=state.executeQuery(查询); ResultSetMetaData meta=res.getMetaData(); Object[]columnNames=新对象[meta.getColumnCount()]; 对于(int i=1;i,java,swing,jtable,Java,Swing,Jtable,您的问题似乎是由于添加了一个新的带有JTable的JScrollPane而没有删除先前的JScrollPane引起的 例如,试着运行下面的代码 import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.util.Random; import javax.swing.AbstractAction; import javax.swing.JButton; import javax.swing.JFrame

您的问题似乎是由于添加了一个新的带有JTable的JScrollPane而没有删除先前的JScrollPane引起的

例如,试着运行下面的代码

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.util.Random;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

@SuppressWarnings("serial")
public class FrameFC extends JFrame {

    public static void main(String[] args) {
        new FrameFC();
    }

    private Random random = new Random();    
    private JPanel northPanel = new JPanel();

    private JTable excel = new JTable();
    private JScrollPane currentScrollPane = null;

    public FrameFC() {
        this.setTitle("Gestionnaire de produits");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        northPanel.add(new JButton(new AbstractAction("Change Table") {

            @Override
            public void actionPerformed(ActionEvent evt) {
                tableCreation();
            }
        }));

        add(northPanel, BorderLayout.PAGE_START);
        tableCreation();
        pack();
        setLocationRelativeTo(null);

        this.setVisible(true);
    }

    private void tableCreation() {
        String[] columnNames = {"A", "B", "C"};

        int rowCount = random.nextInt(10) +3;
        Object[][] rowData = new Object[rowCount][columnNames.length];
        for (int i = 0; i < rowData.length; i++) {
            for (int j = 0; j < rowData[i].length; j++) {
                rowData[i][j] = "" + random.nextInt(100) + 50;
            }
        }

        excel = new JTable(rowData, columnNames);
        excel.setAutoCreateRowSorter(true);

        if (currentScrollPane != null) {
            // remove(currentScrollPane);   // ******* here ******
        }
        currentScrollPane = new JScrollPane(excel);

        add(currentScrollPane);
        this.revalidate();
        repaint();
    }

}
如果没有安装,您可能会看到保留的JScrollPane的副作用

但是,更好的解决方案是我在评论中提到的:不要交换组件,而是交换JTable中的模型。使用所需的数据创建一个DefaultTableModel,并通过在其上调用
setModel(…)
来设置JTable的模型。这更干净、更安全

我也注意到,我尝试使用您的代码并删除与您的问题无关的所有位,包括任何和所有SQL代码以及与该问题无关的组件和侦听器。请在尝试调试和在本网站上的问题中考虑自己这样做。

e、 g

导入java.awt.BorderLayout;
导入java.awt.event.ActionEvent;
导入java.util.Random;
导入javax.swing.*;
导入javax.swing.table.DefaultTableModel;
导入javax.swing.table.TableModel;
@抑制警告(“串行”)
公共类PanelFC扩展了JPanel{
私有静态最终字符串[]列名称={“A”、“B”、“C”};
私有随机=新随机();
private JPanel northPanel=new JPanel();
私有JTable excel=新JTable(modelCreation());
公共小组委员会({
添加(新的JButton(新的CreateModelAction(“创建模型”));
setLayout(新的BorderLayout());
添加(northPanel,BorderLayout.PAGE_START);
添加(新的JScrollPane(excel),BorderLayout.CENTER);
}
私有表模型模型创建(){
//您的代码将采用一些参数,并使用数据库查询
//结果,创建表模型
//此外,所有数据库代码都应该在后台线程中调用
int rowCount=random.nextInt(10)+3;
对象[][]行数据=新对象[rowCount][COLUMN_NAMES.length];
对于(int i=0;iclass SearchListener implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent e) {

    // Random query construction with the e.getText() method

    if (!column.equals("prix") && !column.equals("num_id")){
            query = "select * from products where " + column + " like '%" + searchText.getText().toUpperCase().trim() + "%'";
        }else{
            query = "select * from products where " + column + " = '" + searchText.getText().toUpperCase().trim() + "'";
        }

    }else{
        query = "select * from products";
    }
        tableCreation(query);
    }
}
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.JTextField;


public class FrameFC extends JFrame{

    public static void main(String[] args) {
        FrameFC fr = new FrameFC();
    }

    /*Main Frame Creation*/

    private JSplitPane split;
    private Font f = new Font("Arial", Font.PLAIN, 15);
    private JScrollPane scroll = new JScrollPane();

    /*Panel Creation*/
    private JPanel mainPanel = new JPanel();

    private JPanel westPanel = new JPanel();
    private JPanel eastPanel = new JPanel();

    private JPanel addPanel = new JPanel();
    private JPanel searchPanel = new JPanel();
    private JPanel removePanel = new JPanel();

    private int screenHeight = (int) (Toolkit.getDefaultToolkit().getScreenSize().getHeight());
    private int screenWidth = (int) (Toolkit.getDefaultToolkit().getScreenSize().getWidth());

    private JButton buttonAdd = new JButton("Ajouter"),
                    buttonSearch = new JButton("Rechercher"),
                    buttonRemove = new JButton("Supprimer");

    private JTextField  nomP = new JTextField(),
                        cat = new JTextField(),
                        mag = new JTextField(),
                        prix = new JTextField(),
                        dateAchat = new JTextField(),
                        codemag = new JTextField(),
                        removeText = new JTextField();

    private JTextField searchText = new JTextField();

    private String[] tabCat = {"ID", "Nom Produit", "Categorie", "Magasin", "Prix", "Date (JJ/MM/AAAA)", "Code Magasin"};

    private JComboBox combo = new JComboBox(tabCat);

    /*Table Creation*/
    private JPanel tablePanel = new JPanel();
    private JTable excel = new JTable();
    private String query = "select * from products order by num_id";

    public FrameFC(){
        this.setTitle("Gestionnaire de produits");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setExtendedState(JFrame.MAXIMIZED_BOTH);
        this.setLayout(new BorderLayout());

        panelCreation();
        tableCreation(query);

        this.setVisible(true);
    }

    class AjouterListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            if (nomP.getText().equals("") ||
                    cat.getText().equals("") ||
                    mag.getText().equals("") ||
                    prix.getText().equals("") ||
                    dateAchat.getText().equals("")){

            }else{
                String nomps, cats, mags, prixs, dates;
                nomps = nomP.getText();
                cats = cat.getText();
                mags = mag.getText();
                prixs = prix.getText();
                dates = dateAchat.getText();

                query = "insert into products "
                        + "(nom_produit, cat, mag, prix, date_achat, code_magasin)"
                        + " values ("
                        + "'" + nomps + "', '" + cats
                        + "', '" + mags + "', " + prixs
                        + ", '" + dates + "', '" + codemag.getText() + "');";

                Statement state;
                ResultSet res;
                try {
                    state = ConnectPostGRESql.getInstance("postgres").createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
                    res = state.executeQuery(query);
                } catch (SQLException e1) {
                    System.out.println(nomps + " ajouté avec succès.");
                }

                query = "select * from products";
                tableCreation(query);
                nomP.setText("");
                cat.setText("");
                prix.setText("");

            }
        }
    }

    class SearchListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            String column;

            if (!searchText.getText().equals("")){

            switch (String.valueOf(combo.getSelectedItem()))
            {
            case "ID":
                column = "num_id";
                break;
            case "Nom Produit":
                column = "nom_produit";
                break;
            case "Categorie":
                column = "cat";
                break;
            case "Magasin":
                column = "mag";
                break;
            case "Prix":
                column = "prix";
                break;
            case "Code Magasin":
                column = "code_magasin";
                break;
            default:
                column = "date_achat";
                break;
            }
            if (!column.equals("prix") && !column.equals("num_id")){
                query = "select * from products where " + column + " like '%" + searchText.getText().toUpperCase().trim() + "%'";
            }else{
                query = "select * from products where " + column + " = '" + searchText.getText().toUpperCase().trim() + "'";
            }

        }else{
            query = "select * from products";
        }
            tableCreation(query);
        }
    }

    class RemoveListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            if (!removeText.getText().equals("")){
                Statement state;
                ResultSet res;
                try {
                    state = ConnectPostGRESql.getInstance("postgres").createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
                    res = state.executeQuery("delete from products where num_id = " + removeText.getText());
                } catch (SQLException e1) {
                    System.out.println("Entrée supprimée avec succès.");
                }
            }
            tableCreation("select * from products");

        }
    }

    private void tableCreation(String query) {
        // TODO Auto-generated method stub
        try {
            Statement state = ConnectPostGRESql.getInstance("postgres").createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
            ResultSet res = state.executeQuery(query);

            ResultSetMetaData meta = res.getMetaData();

            Object[] columnNames = new Object[meta.getColumnCount()];

            for (int i = 1; i<=meta.getColumnCount();i++){
                columnNames[i-1] = meta.getColumnName(i);
            }

            res.last();

            Object[][] rowData = new Object[res.getRow()][meta.getColumnCount()];

            res.beforeFirst();

            int j = 1;

            while (res.next()){
                for (int i = 1; i <= meta.getColumnCount(); i++){
                    if (i == 1){
                        int nombredez = 4 - String.valueOf(res.getInt(i)).length();
                        String nombredezString = "";
                        for (int n = 0; n < nombredez;n++){
                            nombredezString += "0";
                        }
                        rowData[j-1][i-1] = nombredezString + String.valueOf(res.getObject(i));
                    }
                    else{
                        rowData[j-1][i-1] = res.getObject(i);
                    }
                }
                j++;
            }

            res.close();
            state.close();

            excel = new JTable(rowData, columnNames);
            excel.setAutoCreateRowSorter(true);
        } catch (Exception e) {
            e.printStackTrace();
        }
        tablePanel.removeAll();
        this.getContentPane().add(new JScrollPane(tablePanel.add(excel)), BorderLayout.CENTER);
        this.revalidate();
    }

    private void panelCreation() {
        // TODO Auto-generated method stub

        /*Panel Add (West)*/
        addPanel.setLayout(new GridLayout(7,2));

        addPanel.add(new JLabel("Entrez le nom du produit :"));
        addPanel.add(nomP);
        addPanel.add(new JLabel("Entrez la catégorie :"));
        addPanel.add(cat);
        addPanel.add(new JLabel("Entrez le magasin :"));
        addPanel.add(mag);
        addPanel.add(new JLabel("Entrez le prix :"));
        addPanel.add(prix);
        addPanel.add(new JLabel("Entrez la date :"));
        addPanel.add(dateAchat);
        addPanel.add(new JLabel("Entrez le code magasin"));
        addPanel.add(codemag);
        addPanel.add(new JLabel());

        buttonAdd.addActionListener(new AjouterListener());
        addPanel.add(buttonAdd);

        addPanel.setBorder(BorderFactory.createTitledBorder("Ajouter"));
        addPanel.setPreferredSize(new Dimension(949, 360));

        /*Panel Search (North-East)*/
        searchPanel.setLayout(new GridLayout(2,2));

        searchPanel.add(combo);
        searchPanel.add(searchText);
        searchPanel.add(new JLabel());

        buttonSearch.addActionListener(new SearchListener());
        searchPanel.add(buttonSearch);

        searchPanel.setBorder(BorderFactory.createTitledBorder("Rechercher"));
        searchPanel.setPreferredSize(new Dimension(949, 180));

        /*Panel Remove (South-East)*/
        removePanel.setLayout(new GridLayout(2,2));

        removePanel.add(new JLabel("Entrez le numero d'identifiant : "));
        removePanel.add(removeText);
        removePanel.add(new JLabel());

        buttonRemove.addActionListener(new RemoveListener());
        removePanel.add(buttonRemove);

        removePanel.setBorder(BorderFactory.createTitledBorder("Supprimer"));
        removePanel.setPreferredSize(new Dimension(949, 180));

        /*MainPanel on Frame*/
        westPanel.setBorder(BorderFactory.createLineBorder(Color.black, 2));
        westPanel.add(addPanel);

        eastPanel.setLayout(new BorderLayout());
        eastPanel.setBorder(BorderFactory.createLineBorder(Color.black, 2));

        eastPanel.add(searchPanel, BorderLayout.NORTH);
        eastPanel.add(removePanel, BorderLayout.SOUTH);

        mainPanel.setLayout(new BorderLayout());

        mainPanel.add(westPanel, BorderLayout.WEST);
        mainPanel.add(eastPanel, BorderLayout.EAST);

        this.getContentPane().add(new JScrollPane(mainPanel), BorderLayout.NORTH);
    }

}
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.util.Random;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

@SuppressWarnings("serial")
public class FrameFC extends JFrame {

    public static void main(String[] args) {
        new FrameFC();
    }

    private Random random = new Random();    
    private JPanel northPanel = new JPanel();

    private JTable excel = new JTable();
    private JScrollPane currentScrollPane = null;

    public FrameFC() {
        this.setTitle("Gestionnaire de produits");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        northPanel.add(new JButton(new AbstractAction("Change Table") {

            @Override
            public void actionPerformed(ActionEvent evt) {
                tableCreation();
            }
        }));

        add(northPanel, BorderLayout.PAGE_START);
        tableCreation();
        pack();
        setLocationRelativeTo(null);

        this.setVisible(true);
    }

    private void tableCreation() {
        String[] columnNames = {"A", "B", "C"};

        int rowCount = random.nextInt(10) +3;
        Object[][] rowData = new Object[rowCount][columnNames.length];
        for (int i = 0; i < rowData.length; i++) {
            for (int j = 0; j < rowData[i].length; j++) {
                rowData[i][j] = "" + random.nextInt(100) + 50;
            }
        }

        excel = new JTable(rowData, columnNames);
        excel.setAutoCreateRowSorter(true);

        if (currentScrollPane != null) {
            // remove(currentScrollPane);   // ******* here ******
        }
        currentScrollPane = new JScrollPane(excel);

        add(currentScrollPane);
        this.revalidate();
        repaint();
    }

}
// remove(currentScrollPane);   // ******* here ******
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.util.Random;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

@SuppressWarnings("serial")
public class PanelFC extends JPanel {
    private static final String[] COLUMN_NAMES = {"A", "B", "C"};
    private Random random = new Random();    
    private JPanel northPanel = new JPanel();    
    private JTable excel = new JTable(modelCreation());

    public PanelFC() {
        northPanel.add(new JButton(new CreateModelAction("Create Model")));

        setLayout(new BorderLayout());

        add(northPanel, BorderLayout.PAGE_START);
        add(new JScrollPane(excel), BorderLayout.CENTER);
    }

    private TableModel modelCreation() {
        // your code will take some parameter, and using database query 
        // result, create the table model
        // Also, all database code should be called in a background thread
        int rowCount = random.nextInt(10) +3;
        Object[][] rowData = new Object[rowCount][COLUMN_NAMES.length];
        for (int i = 0; i < rowData.length; i++) {
            for (int j = 0; j < rowData[i].length; j++) {
                rowData[i][j] = "" + random.nextInt(100) + 50;
            }
        }        
        DefaultTableModel model = new DefaultTableModel(rowData, COLUMN_NAMES);
        return model;
    }

    private class CreateModelAction extends AbstractAction {
        public CreateModelAction(String name) {
            super(name);
            int mnemonic = (int) name.charAt(0);
            putValue(MNEMONIC_KEY, mnemonic);
        }

        @Override
        public void actionPerformed(ActionEvent e) {
            excel.setModel(modelCreation());
        }
    }

    private static void createAndShowGui() {
        PanelFC mainPanel = new PanelFC();

        JFrame frame = new JFrame("PanelFC");
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.getContentPane().add(mainPanel);
        frame.pack();
        frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGui();
            }
        });
    }
}