ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 210826_JTable+JTextArea
    Swing 2021. 8. 26. 17:31

    public class JTable_01 extends JFrame{

     

    Container cp;

    JTable tb1,tb2,tb3;

    JTextArea area;

     

     

    public JTable_01(String title) {

     

    super(title);

     

    cp=this.getContentPane();

    cp.setBackground(new Color(171,190,190));

    this.setBounds(700,100,800,800); 

    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    this.initDesign();

    this.setVisible(true); 

    }

     

     

    public void initDesign() {

     

    this.setLayout(new GridLayout(2, 2, 5, 5)); //그리드로 2행2열

     

     

    //1번째 테이블 행,열 지정

    tb1=new JTable(5,4);

    this.add(new JScrollPane(tb1)); //this는 프레임인데 table 바로 못 올라옴,JScrollPane 안에 넣어서 올라와야 함

     

    //2번째 테이블은 생성시 데이터 넣기

    //행과 열 한번에 넣으려면 배열의 초기값 이용

    String []title1= {"이름","나이","주소"};

    String [][]data1= {

    {"유재석","23","서울시 서초구"},{"박명수","30","강원도 원주시"},

    {"강호동","44","경기도 김포시"}

            };  //다중배열

     

    //string 두개를 테이블에 담기

    tb2=new JTable(data1, title1);   //담을내용,제목

    this.add(new JScrollPane(tb2));  //this는 프레임인데 table 바로 못 올라옴,JScrollPane 안에 넣어서 올라와야 함

     

    //3번째 테이블 Model을 이용해서 생성..model은 추가,삭제 가능

    DefaultTableModel model1=new DefaultTableModel(data1, title1);

    tb3=new JTable(model1);

    this.add(new JScrollPane(tb3));

     

    //tb3에 추가가능..model 사용했기에 가능

    String[] addData1= {"정준하","37","서울시 광진구"};

    model1.addRow(addData1);

     

    //벡터로 생성후 추가

    Vector<String>addData2=new Vector<String>();  //벡터 string만을 담겠다

    addData2.add("홍길동");

    addData2.add("33");

    addData2.add("서울시 종로구");

    model1.addRow(addData2);

     

    //출력창

    area=new JTextArea();

    this.add(area);

     

    //jtable과 model 메서드 확인

    //행 개수

    int rowCount=tb3.getRowCount();

    int rowCount2=model1.getRowCount();

     

    area.append("tb3의 행 개수: "+rowCount+"\n");

    area.append("tb3의 행 개수: "+rowCount+"\n");

     

    //열 개수

    int columnCount=tb3.getColumnCount();

     

    area.append("tb3의 열 개수: "+columnCount+"\n");

     

    area.append("1행 1열: "+tb3.getValueAt(1, 1)+"\n");

    area.append("3행 2열: "+tb3.getValueAt(3, 2)+"\n");

    area.append("3행 2열: "+model1.getValueAt(3, 2)+"\n"); //값 같음

     

    //tb3에 마우스클릭 이벤트를 추가해서 area에 출력

    tb3.addMouseListener(new MouseAdapter() {

    });  //adapter는 메서드 꾸러미라서 원하는 거 뽑아 쓰면 됨

     

    // @Override

    // public void mouseClicked(MouseEvent e) {

    //

    // //클릭한 행번호 얻기

    // int row=tb3.getSelectedRow();

    //

    // //클릭한 열번호 얻기

    // int col=tb3.getSelectedColumn();

    //

    // //해당열,행에 있는 데이터를 얻어서 area에 출력

    // area.append(row+","+col+"==>"+tb3.getValueAt(row, col));

    //

    // super.mouseClicked(e);

    // }

    }

     

     

    public static void main(String[] args) {

     

    new JTable_01("테이블");

    }

    }

    댓글

Designed by Tistory.