본문 바로가기

JAVA

JTable 기본 실습

 


 

import javax.swing.table.AbstractTableModel;

 

 

public class DataModel extends AbstractTableModel {

       

        //컬럼의 이름

        String[] columNames = {"col1","col2"};

        //데이터

        Object[][] data = {{"1", "2"}};

       

        public DataModel(){

              

        }

 

        public DataModel(Object[][] data) {

               this.data = data;

        }

 

        @Override

        public int getColumnCount() {

               // TODO Auto-generated method stub

               System.out.println("getColumnCount");

               return columNames.length;

        }

 

        @Override

        public int getRowCount() {

               // TODO Auto-generated method stub

               System.out.println("getRowCount");

               return data.length;           //2 배열의 길이

        }

 

        @Override

        public Object getValueAt(int arg0, int arg1) {

               // TODO Auto-generated method stub

               System.out.println("getValueAt");

               return data[arg0][arg1];

        }

 

        @Override

        public String getColumnName(int arg0) {

               // TODO Auto-generated method stub

               System.out.println("getColumnName");

               return columNames[arg0];

        }

       

       

 

}


 

 

 

 

 

 

실행 클래스


import java.awt.BorderLayout;

 

import java.awt.EventQueue;

 

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.JTable;

import javax.swing.table.DefaultTableModel;

import javax.swing.border.EtchedBorder;

import javax.swing.border.TitledBorder;

import javax.swing.JButton;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

 

 

public class JTableEx01 extends JFrame {

 

        private JPanel contentPane;

        private JTable table;

        private JButton btnNewButton;

 

        public static void main(String[] args) {

               EventQueue.invokeLater(new Runnable() {

                       public void run() {

                              try {

                                      JTableEx01 frame = new JTableEx01();

                                      frame.setVisible(true);

                              } catch (Exception e) {

                                      e.printStackTrace();

                              }

                       }

               });

        }

 

 

        public JTableEx01() {

               setTitle("JTable");

               setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

               setBounds(100, 100, 450, 300);

               contentPane = new JPanel();

               contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

               setContentPane(contentPane);

               contentPane.setLayout(null);

              

               JPanel panel = new JPanel();

               panel.setBorder(new TitledBorder(null, "JPanel title", TitledBorder.LEADING, TitledBorder.TOP, null, null));

               panel.setBounds(12, 10, 412, 165);

               contentPane.add(panel);

               panel.setLayout(null);

              

               table = new JTable();

               table.setRowSelectionAllowed(false);

               table.setBounds(6, 17, 400, 167);

               panel.add(table);

               table.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));

              

              

               table.setModel(new DataModel());

              

              

               btnNewButton = new JButton("데이터 확인");

               btnNewButton.addMouseListener(new MouseAdapter() {

                       @Override

                       public void mouseClicked(MouseEvent arg0) {

                              System.out.println(table.getSelectedRow());

                              System.out.println(table.getSelectedColumn());

//                            System.out.println(table.getValueAt(table.getSelectedRow(), table.getSelectedColumn()));

                             

                              Object[][] data = {

                                                                    {"1", "2"},

                                                                    {"1", "2"},

                                                                    {"1", "2"},

                                                                    {"1", "2"},

                                                                    {"1", "2"}

                                                                    };

                             

                              table.setModel(new DataModel(data));

                             

                                                            

                       }

               });

               btnNewButton.setBounds(155, 199, 130, 31);

               contentPane.add(btnNewButton);

        }

}

 

 

결과물

 

 

 

 

 

 

 

 

 

 

 

실행