학습자료/Java 2015. 1. 8. 21:37

동작 (붉은색 글 표기)

1. 초기 더미데이터 2줄 테이블 생성

2. 시작 버튼을 누를시 timertask를 이용하여 주기적으로 테이블 값 변경

3. 정지 버튼 누를시 taimertask를 정지하여 테이블 값 변경을 취소


GUI 다루는건 항상 맘처럼 안되네요....


package test;


import java.awt.BorderLayout;

import java.awt.EventQueue;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Date;

import java.util.Timer;

import java.util.TimerTask;


import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.ListSelectionModel;

import javax.swing.table.DefaultTableModel;


public class TablePrint3 {


private JFrame frame;

private JTable table;

private JButton button;

private JButton button2;


ScheduledJob job;

Timer jobScheduler;

Integer a = 1;


public TablePrint3() {

initialize();

}


public static void main(String args[]) {

EventQueue.invokeLater(new Runnable() {


@Override

public void run() {

// TODO Auto-generated method stub

try {

TablePrint3 window = new TablePrint3();

window.frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}


}

});

}


private void initialize() {

Object headers[] = { "aaa", "aaaa", "제목", "aa위" };

Object[][] rows = { { "one", "1", "3", "4" }, { "one", "1", "3", "4" } };

frame = new JFrame("Table Printing");

table = new JTable(rows, headers);

// 초기 더미 테이블 값 설정


frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);



JScrollPane scrollPane = new JScrollPane(table);

frame.getContentPane().add(scrollPane, BorderLayout.CENTER);

button = new JButton("정지");

button2 = new JButton("시작");


ActionListener startTask = new ActionListener() {

public void actionPerformed(ActionEvent e) {

if( jobScheduler != null){ 

job = new ScheduledJob();

jobScheduler = new Timer();

jobScheduler.scheduleAtFixedRate(job, 1000, 3000);

}

}

};   //Time Task 시작

ActionListener openConfig = new ActionListener() {


@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub


jobScheduler.cancel();

//timetask 정지

jobScheduler = null;

Runtime rt = Runtime.getRuntime();

String exeFile = "C://Windows//System32//notepad.exe C://chc_conf.txt";

Process p;


try {

p = rt.exec(exeFile);

p.waitFor();

} catch (Exception ee) {

ee.printStackTrace();

}

}

};


button.addActionListener(openConfig);

button2.addActionListener(startTask);


frame.getContentPane().add(button, BorderLayout.SOUTH);

frame.getContentPane().add(button2, BorderLayout.NORTH);

frame.setSize(490, 592);

frame.setVisible(true);


}


class ScheduledJob extends TimerTask {


public void run() {

a++;

table.setValueAt(a, 1, 2);

//2째줄 3번째 칼럼의 수를 하나씩 올리는 부분

}

}


}



'학습자료 > Java' 카테고리의 다른 글

[java] 스케줄링 like cron(quartz Scheduler)  (1) 2015.07.22
[java] 자바어플에 webview(javafx) 삽입  (0) 2015.03.16
[java] timetask  (0) 2015.01.08
[java] 파일 실행  (0) 2015.01.08
[java] html 파싱, jsoup 예제  (0) 2015.01.08
posted by cozyboy
: