새소식

Java

[Java] JTable응용

  • -

[Java] JTable응용







AddAction.java

 


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.table.*;

public class addAction implements ActionListener{
//준비
 JTable table;
 JTextField txt1,txt2,txt3;
 //생성자 구현
 public addAction(JTable table,
   JTextField txt1,
   JTextField txt2,
   JTextField txt3){
  this.table = table;
  this.txt1 = txt1;
  this.txt2 = txt2;
  this.txt3 = txt3;
  
 }
 @Override
 public void actionPerformed(ActionEvent e) {
 String arr[] = new String[3];
 arr[0]=txt1.getText();
 arr[1]=txt2.getText();
 arr[2]=txt3.getText();
 DefaultTableModel model =
   (DefaultTableModel)table.getModel();
 //getModel()메소드는 미리앞에 있는 모델을 얻어오는 메소드
 model.addRow(arr);
 //추가  =>이력후 값을 초기 null을 넣어 추가버튼을 누르면 입력했던데이타가 지워짐
 txt1.setText(null);
 txt2.setText(null);
 txt3.setText(null);
//null처리후 이름의 JTextField에 포커스를 마추기(이름 필드에 커서 주기)
 txt1.requestFocus();//이메소드를 이용하면 그곳에 포커스가 맞춰짐
 


 
   
 }

}




 

 JTableCreate.java

 


import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;

public class JTableCreate {

 
public static void main(String[]args) {
 
 
 
 JFrame frame = new JFrame("Table Test");
 frame.setPreferredSize(new Dimension(500,400));
 frame.setLocation(500,400);
 Container con = frame.getContentPane();
 String colName[] = {"이름","나이","성별"};


 //1단계:DefaultTableModel 객체 생성
 DefaultTableModel model = new DefaultTableModel(colName,0);
   
 
 //2단계: JTable 객체 생성
 JTable table = new JTable(model);
 
 
 
 //cell의 데이터값 가운데 설정하기====================================
 DefaultTableCellRenderer tableCell = new DefaultTableCellRenderer();
 tableCell.setHorizontalAlignment(SwingConstants.CENTER);
 TableColumnModel CellModel =
   table.getColumnModel();
 for(int i = 0;i<CellModel.getColumnCount();i++)
  CellModel.getColumn(i).setCellRenderer(tableCell);
 
 //=================================================================
 
 
 //3단계:scrollPane객체 생성
con.add(new JScrollPane(table),BorderLayout.CENTER);


JPanel panel = new JPanel();
JTextField txt1 = new JTextField(6);
JTextField txt2 = new JTextField(3);
JTextField txt3 = new JTextField(2);

JButton btn1 = new JButton("추가");
JButton btn2 = new JButton("삭제");

panel.add(new JLabel("이름"));//바로만들기
panel.add(txt1);
panel.add(new JLabel("나이"));//바로만들기
panel.add(txt2);
panel.add(new JLabel("성별"));//바로만들기
panel.add(txt3);

panel.add(btn1);
panel.add(btn2);

con.add(panel, BorderLayout.SOUTH);

 


//각 컬럼별 데이타 정열시키기-----------------------------------
table.setAutoCreateRowSorter(true);
TableRowSorter tavles = new TableRowSorter(table.getModel());
table.setRowSorter(tavles);
//-----------------------------------------------------------

 

btn1.addActionListener(new addAction(table,txt1,txt2,txt3));
btn2.addActionListener(new removeAction(table));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);


}

 
}




 

removeAction.java

 


import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;

public class removeAction implements ActionListener {
//준비
 JTable table;
 //생성자 구현
 public removeAction(JTable table){
  this.table = table;
  
 }
 
 @Override
 public void actionPerformed(ActionEvent e) {
 //선택했을때만삭제를 위해 밑에 작업을 해준다. 이작업을 수행하지않으면 선택하지않고
  //삭제를 눌러도 삭제됨
  int  rownumber = table.getSelectedRow();
 if(rownumber == -1)
  return;
 
 
 
 DefaultTableModel model =
    (DefaultTableModel)table.getModel();
  model.removeRow(rownumber);
 }

}


'Java' 카테고리의 다른 글

[Java] JOptionPane  (0) 2012.11.03
[Java] 금액을 화폐단위로 나누기  (0) 2012.11.03
[Java] Jtable 만들기  (0) 2012.10.25
[Java] JRadioButton 의 이벤트처리  (0) 2012.10.25
[Java] 로또번호 발생기  (0) 2012.10.25
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.