Mini

Run Settings
LanguageJava
Language Version
Run Command
package mini_1101_new; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.HashMap; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JTabbedPane; class ViewFrame extends JFrame implements ActionListener{ private Information information; private HashMap<String, Information> infoDB; //메뉴바 세팅 private JMenuBar mb; private JMenu newFile; private JMenuItem new1; private JMenuItem open; private JMenuItem save; private JMenu edit; private JMenuItem tmp1; private JMenuItem tmp2; private JMenuItem tmp3; //탭화면 세팅 JTabbedPane jtab = null; JPanelBefore jpBefore = null; JPanelName jpName = null; JPanelList jpList = null; JPanelText jpText = null; JPanelClass c1 = null; JPanelClass c2 = null; JPanelClass c3 = null; JPanelClass c4 = null; JPanelClass c5 = null; JPanelClass c6 = null; JPanelClass c7 = null; JPanelClass c8 = null; JPanelClass c9 = null; JPanelClass c10 = null; // public void createMenu() { newFile = new JMenu("파일"); new1 = new JMenuItem("새 파일"); open = new JMenuItem("불러오기"); save = new JMenuItem("저장"); edit = new JMenu("편집"); tmp1 = new JMenuItem("1"); tmp2 = new JMenuItem("2"); tmp3 = new JMenuItem("3"); mb = new JMenuBar(); actionEventStart(); newFile.add(new1); newFile.add(open); newFile.add(save); mb.add(newFile); edit.add(tmp1); edit.add(tmp2); edit.add(tmp3); mb.add(edit); setJMenuBar(mb); } public void tabSetting() { jtab = new JTabbedPane(); //탭화면 세팅 jpBefore = new JPanelBefore(information, this); jpName = new JPanelName(information, this); jpList = new JPanelList(information, this); jpText = new JPanelText(information, this); c1 = new JPanelClass(information, this, 1); c2 = new JPanelClass(information, this, 2); c3 = new JPanelClass(information, this, 3); c4 = new JPanelClass(information, this, 4); c5 = new JPanelClass(information, this, 5); c6 = new JPanelClass(information, this, 6); c7 = new JPanelClass(information, this, 7); c8 = new JPanelClass(information, this, 8); c9 = new JPanelClass(information, this, 9); c10 = new JPanelClass(information, this, 10); jtab.addTab("선행입력", jpBefore); jtab.addTab("명렬입력", jpName); jtab.addTab("평가항목입력", jpList); jtab.addTab("성취번호 내용입력", jpText); jtab.addTab("1반", c1); jtab.addTab("2반", c2); jtab.addTab("3반", c3); jtab.addTab("4반", c4); jtab.addTab("5반", c5); jtab.addTab("6반", c6); jtab.addTab("7반", c7); jtab.addTab("8반", c8); jtab.addTab("9반", c9); jtab.addTab("10반", c10); add(jtab); } public void actionEventStart() { //버튼에 액션이벤트 추가 tmp1.addActionListener(this); } public void initComponent() { createMenu(); //메뉴바세팅 tabSetting(); //탭화면 세팅 } public void initEvent() { } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == tmp1) { //System.out.println("??"); // System.out.println(information.getGrade()); } } //생성자 public ViewFrame (String title) { super(title); Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); super.setSize(screen.width/2, screen.height/2); super.setLocation(screen.width/4, screen.height/4); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); information = new Information(); infoDB = new HashMap<String, Information>(); initComponent(); // 이 안에 tabsetting / 이 안에 각 패널들 생성 / 이 안에 information 객체 참조 initEvent(); super.setVisible(true); } } public class Main { public static final int MAXPEOPLE= 40; public static void main(String[] args) { ViewFrame vf = new ViewFrame("수행평가 관리프로그램 ver.1.0"); } }
package mini_1101_new; public class Information { private String schoolName; private String isMiddle; private String grade; private int totalClass; private String subject; private int exams; private int[] ratings; private int ratingSum; private String[][] names; private String[][] examRule; private String[][] ratingText; private String[][] result1; private String[][] result2; private String[][] result3; private String[][] result4; private String[][] result5; private String[][] result6; private String[][] result7; private String[][] result8; private String[][] result9; private String[][] result10; //1차 public String getSchoolName() { return schoolName; } public void setSchoolName(String schoolName) { this.schoolName = schoolName; } public String getIsMiddle() { return isMiddle; } public void setIsMiddle(String isMiddle) { this.isMiddle = isMiddle; } public String getGrade() { return grade; } public void setGrade(String grade) { this.grade = grade; } public int getTotalClass() { return totalClass; } public void setTotalClass(int totalClass) { this.totalClass = totalClass; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public int getExams() { return exams; } public void setExams(int exams) { this.exams = exams; } //2차 public int getRating(int i) { return ratings[i]; } public int getRatingsLength() { return ratings.length; } public int[] getRatings() { return ratings; } public void setRatings(int[] ratings) { this.ratings = ratings; } //3차 public int getRatingSum() { return ratingSum; } public void setRatingSum(int ratingSum) { this.ratingSum = ratingSum; } //2차 public String[][] getNames() { return names; } public void setNames(String[][] names) { this.names = names; } public String getName(int row, int column) { return names[row][column]; } public String[][] getExamRule() { return examRule; } public void setExamRule(String[][] examRule) { this.examRule = examRule; } //4차 public String[][] getRatingText() { return ratingText; } public void setRatingText(String[][] ratingText) { this.ratingText = ratingText; } //2차 public String[][] getResult1() { return result1; } public void setResult1(String[][] result1) { this.result1 = result1; } public String[][] getResult2() { return result2; } public void setResult2(String[][] result2) { this.result2 = result2; } public String[][] getResult3() { return result3; } public void setResult3(String[][] result3) { this.result3 = result3; } public String[][] getResult4() { return result4; } public void setResult4(String[][] result4) { this.result4 = result4; } public String[][] getResult5() { return result5; } public void setResult5(String[][] result5) { this.result5 = result5; } public String[][] getResult6() { return result6; } public void setResult6(String[][] result6) { this.result6 = result6; } public String[][] getResult7() { return result7; } public void setResult7(String[][] result7) { this.result7 = result7; } public String[][] getResult8() { return result8; } public void setResult8(String[][] result8) { this.result8 = result8; } public String[][] getResult9() { return result9; } public void setResult9(String[][] result9) { this.result9 = result9; } public String[][] getResult10() { return result10; } public void setResult10(String[][] result10) { this.result10 = result10; } //생성자 public Information() { this.exams = 1; this.grade = "1"; this.totalClass = 1; this.ratingSum = 2; this.ratings = new int[1]; } // public Information(String schoolName, String isMiddle, String grade, int totalClass, String subject, int exams) { // this.schoolName = schoolName; // this.isMiddle = isMiddle; // this.grade = grade; // this.totalClass = totalClass; // this.subject = subject; // this.exams = exams; // // // this.ratings = new int[1]; // this.names = new String[41][]; // this.examRule = new String[1][5]; // this.result = new String[41][]; // this.ratingSum = 0; // this.ratingText = new String[1][3]; // } }
package mini_1101_new; import java.awt.BorderLayout; import java.awt.Choice; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; public class JPanelBefore extends JPanel implements ActionListener { Information information; ViewFrame vf; private JPanel pn1; private JPanel pn2; private JPanel pn1_1; private JPanel pn1_2; private JPanel pn1_3; private JPanel pn2_1; private JButton reset1; //초기화 private JButton save1; //저장 private JButton reset2; //초기화 private JButton save2; //저장 private JTextField schoolName; //학교명 입력 private Choice isMiddle; //중학교/고등학교 선택 private Choice grade; //학년 선택 private Choice totalClass; //총 반수 선택 private JTextField subject; //과목명 private Choice exams; //총 평가항목 수 (ex. 총 단원 수) private JTable examsTable; private JScrollPane jspExams; public void panel1Setting() { pn1_1.setLayout(new FlowLayout(FlowLayout.RIGHT)); pn1_1.add(reset1); pn1_1.add(save1); pn1_2.add(schoolName); pn1_2.add(isMiddle); pn1_2.add(grade); pn1_2.add(new JLabel("학년 ")); pn1_3.add(new JLabel("총 반수 ")); pn1_3.add(totalClass); pn1_3.add(new JLabel(" 과목명 ")); pn1_3.add(subject); pn1_3.add(new JLabel(" 평가항목 수 ")); pn1_3.add(exams); pn1.setLayout(new GridLayout(3, 1)); pn1.add(pn1_1); pn1.add(pn1_2); pn1.add(pn1_3); } public void panel2Setting() { pn2_1.setLayout(new FlowLayout(FlowLayout.RIGHT)); pn2_1.add(reset2); pn2_1.add(save2); examsTableSetting(); pn2.setLayout(new BorderLayout()); pn2.add(pn2_1, BorderLayout.NORTH); pn2.add(jspExams, BorderLayout.CENTER); JLabel warning = new JLabel("<html>마지막 칸 입력후 Tab키를 눌러야 입력된 값이 저장됩니다.<br>" + "작업 도중 선행입력의 저장버튼을 다시 누르면 작업내용이 초기화되니 유의하시기 바랍니다.</html>"); pn2.add(warning , BorderLayout.SOUTH); } public void examsTableSetting() { String[] header = new String[information.getExams()+1]; String[][] contents = new String[1][information.getExams()+1]; header[0] = "평가번호"; for(int i=1 ; i<information.getExams()+1 ; i++) { header[i] = i+""; } contents[0][0] = "항목별 성취기준 수"; for(int i=1 ; i<information.getExams()+1 ; i++) { contents[0][i] = ""; } DefaultTableModel modelExams = new DefaultTableModel(contents, header); examsTable = new JTable(modelExams); examsTable.getTableHeader().setReorderingAllowed(false); //테이블 column 이동 잠금 examsTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); //가로 스크롤바 생성 DefaultTableCellRenderer alignCenter = new DefaultTableCellRenderer(); //가운데정렬 설정(열단위로) alignCenter.setHorizontalAlignment(JLabel.CENTER); examsTable.getColumnModel().getColumn(0).setMinWidth(120); //0열 크기를 120으로 examsTable.setRowHeight(30); // 전체 행 높이를 30으로 for(int i = 0 ; i<information.getExams()+1 ; i++) { examsTable.getColumnModel().getColumn(i).setCellRenderer(alignCenter); } jspExams = new JScrollPane(examsTable); } public void actionEventStart() { //버튼에 액션이벤트 추가 reset1.addActionListener(this); save1.addActionListener(this); reset2.addActionListener(this); save2.addActionListener(this); } public void setRatingsSum() { int sum = 0; for (int i = 0 ; i < information.getExams() ; i++) { sum += information.getRating(i); } information.setRatingSum(sum); } public void initComponent() { pn1 = new JPanel(); pn2 = new JPanel(); pn1_1 = new JPanel(); //버튼공간 pn1_2 = new JPanel(); pn1_3 = new JPanel(); pn2_1 = new JPanel(); //버튼공간 reset1 = new JButton("초기화"); save1 = new JButton("저장"); reset2 = new JButton("초기화"); save2 = new JButton("저장"); actionEventStart(); //버튼에 액션이벤트 추가 schoolName = new JTextField(10); isMiddle = new Choice(); grade = new Choice(); totalClass = new Choice(); subject = new JTextField(10); exams = new Choice(); isMiddle.add("중학교"); isMiddle.add("고등학교"); for(int i = 0 ; i<3; i++) { //1~3 grade.add((i+1)+""); } for(int i = 0 ; i<10; i++) { //1~10 totalClass.add((i+1)+""); } for(int i = 0 ; i<20; i++) { //1~20 exams.add((i+1)+""); } panel1Setting(); panel2Setting(); // 최종 setLayout(new GridLayout(2,1)); add(pn1); add(pn2); } public void initEvent() { } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == reset1) { schoolName.setText(""); isMiddle.select(0); grade.select(0); totalClass.select(0); subject.setText(""); exams.select(0); } else if (e.getSource() == save1 ) { information.setSchoolName(schoolName.getText()); information.setIsMiddle(isMiddle.getSelectedItem()); information.setGrade(grade.getSelectedItem()); information.setTotalClass(Integer.parseInt(totalClass.getSelectedItem())); information.setSubject(subject.getText()); information.setExams(Integer.parseInt(exams.getSelectedItem())); pn2.removeAll(); // 이거 중요!!! panel2Setting(); vf.jpName.removeAll(); vf.jpName.namesTableSetting(); vf.jpList.removeAll(); vf.jpList.listTableSetting(); vf.repaint(); } else if (e.getSource() == reset2 ) { for(int i = 0 ; i < information.getExams() ; i++) { examsTable.setValueAt("", 0, i+1); } } else if (e.getSource() == save2) { int[] tmp = new int[information.getExams()]; try { for(int i = 0 ; i < information.getExams() ; i++) { tmp[i] = Integer.parseInt((String) examsTable.getValueAt(0, i+1)); } } catch (NumberFormatException e1) { JOptionPane.showMessageDialog(null, "입력을 완료하지 않았거나 숫자 이외의 값을 입력하였습니다."); return; } information.setRatings(tmp); //info객체의 ratings 값 저장 setRatingsSum(); //info객체의 ratingSum 값 저장 //System.out.println(information.getRatingSum()); vf.jpText.removeAll(); //ratingSum 업데이트 후 Text패널 갱신 vf.jpText.textTableSetting(); vf.c1.removeAll(); vf.c1.classTableSetting(); vf.repaint(); } } //생성자 public JPanelBefore (Information information, ViewFrame vf) { this.information = information; this.vf = vf; initComponent(); initEvent(); } }
package mini_1101_new; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; public class JPanelClass extends JPanel implements ActionListener { // 반 패널 (1~10반까지 객체 10개 생성) private Information information; private ViewFrame vf; private int classNumber; private JLabel info; private JPanel pn1; private JButton renewal; //갱신 private JButton reset; //초기화 private JButton save; //저장 private JTable classTable; private JScrollPane jspClass; public JTable getClassTable() { return classTable; } public void classTableSetting() { String[] header = new String[information.getExams()+3]; String[][] contents = new String[Main.MAXPEOPLE + 1][information.getExams()+3]; header[0] = "번호"; header[1] = "성명"; for (int i = 0 ; i<information.getExams() ; i++) { header[i+2] = "평가 " + (i+1); } header[information.getExams()+2] = ""; for(int i = 0 ; i<information.getExams() ; i++) { contents[0][i+2] = "1~" + information.getRating(i); } for(int i = 0 ; i < Main.MAXPEOPLE ; i++) { contents[i+1][0] = (i+1)+""; //contents[i+1][1] = "a"; } DefaultTableModel modelClass = new DefaultTableModel(contents, header); classTable = new JTable(modelClass); classTable.getTableHeader().setReorderingAllowed(false); //테이블 column 이동 잠금 classTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); //가로 스크롤바 생성 DefaultTableCellRenderer alignCenter = new DefaultTableCellRenderer(); alignCenter.setHorizontalAlignment(JLabel.CENTER); //가운데정렬 for(int i = 0 ; i<information.getExams()+3 ; i++) { classTable.getColumnModel().getColumn(i).setCellRenderer(alignCenter); //가운데정렬 적용 } classTable.getColumnModel().getColumn(information.getExams()+2).setMinWidth(800); //열크기 classTable.setRowHeight(25); // 행높이 25 jspClass = new JScrollPane(classTable); //-------------- info.setText(information.getGrade() + "학년 " + classNumber + "반 " +" 세부능력 및 특기사항 "); pn1.setLayout(new FlowLayout(FlowLayout.LEFT)); pn1.add(info); pn1.add(renewal); pn1.add(reset); pn1.add(save); setLayout(new BorderLayout()); add(pn1, BorderLayout.NORTH); add(jspClass, BorderLayout.CENTER); } public void actionEventStart() { //버튼에 액션이벤트 추가 renewal.addActionListener(this); reset.addActionListener(this); save.addActionListener(this); } public void initComponent() { pn1 = new JPanel(); renewal = new JButton("갱신"); reset = new JButton("초기화"); save = new JButton("저장"); info = new JLabel(); actionEventStart(); //버튼에 액션이벤트 추가 classTableSetting(); } public void initEvent() { } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == reset) { removeAll(); classTableSetting(); } else if (e.getSource() == save ) { // String[][] tmp = new String[42][information.getExams()+3]; // // tmp[0] = new String[] {"평가번호", "평가영역", "평가내용", "평가항목", "평가도구"}; // for(int i = 0 ; i < information.getExams() ; i++) { // for(int j = 0 ; j < 5 ; j++) { // tmp[i+1][j] = (String) listTable.getValueAt(i, j); // } // } // information.setExamRule(tmp); } else if (e.getSource() == renewal) { } } //생성자 public JPanelClass (Information information, ViewFrame vf, int classNumber) { this.information = information; this.vf = vf; this.classNumber = classNumber; initComponent(); initEvent(); } }
package mini_1101_new; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; public class JPanelName extends JPanel implements ActionListener { private Information information; private ViewFrame vf; private JPanel pn1; private JButton reset; //초기화 private JButton open; //불러오기 private JButton save; //저장 private JTable namesTable; private JScrollPane jspNames; public void namesTableSetting() { String[] header = new String[information.getTotalClass()+1]; String[][] contents = new String[Main.MAXPEOPLE][information.getTotalClass()+1]; header[0] = "번호"; for(int i=1 ; i<information.getTotalClass()+1 ; i++) { header[i] = i+"반"; } for(int i=0 ; i<Main.MAXPEOPLE ; i++) { contents[i][0] = (i+1) + ""; } for(int i = 0 ; i < Main.MAXPEOPLE ; i++) { for(int j = 0 ; j < information.getTotalClass() ; j++) { contents[i][j+1] = ""; // 이름부분은 빈문자열로 초기화 } } DefaultTableModel modelNames = new DefaultTableModel(contents, header); namesTable = new JTable(modelNames); namesTable.getTableHeader().setReorderingAllowed(false); //테이블 column 이동 잠금 namesTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); //가로 스크롤바 생성 DefaultTableCellRenderer alignCenter = new DefaultTableCellRenderer(); alignCenter.setHorizontalAlignment(JLabel.CENTER); //가운데정렬 for(int i = 0 ; i<information.getTotalClass()+1 ; i++) { namesTable.getColumnModel().getColumn(i).setMinWidth(100); //열크기 7 namesTable.getColumnModel().getColumn(i).setCellRenderer(alignCenter); //가운데정렬 적용 } namesTable.setRowHeight(25); // 행높이 25 jspNames = new JScrollPane(namesTable); add(pn1, BorderLayout.NORTH); add(jspNames, BorderLayout.CENTER); } public void actionEventStart() { //버튼에 액션이벤트 추가 reset.addActionListener(this); open.addActionListener(this); save.addActionListener(this); } public void initComponent() { pn1 = new JPanel(); reset = new JButton("초기화"); open = new JButton("불러오기"); save = new JButton("저장"); actionEventStart(); //버튼에 액션이벤트 추가 pn1.setLayout(new FlowLayout(FlowLayout.RIGHT)); pn1.add(new JLabel("전출한 학생은 '전출' 로 입력해 주세요. ")); pn1.add(reset); pn1.add(open); pn1.add(save); setLayout(new BorderLayout()); namesTableSetting(); } public void initEvent() { } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == reset) { removeAll(); namesTableSetting(); } else if (e.getSource() == open) { } else if (e.getSource() == save ) { String[][] tmp = new String[Main.MAXPEOPLE+1][information.getTotalClass()+1]; tmp[0][0] = "번호"; for(int i=1 ; i<information.getTotalClass()+1 ; i++) { tmp[0][i] = i+"반"; } for(int i = 0 ; i < Main.MAXPEOPLE ; i++) { for(int j = 0 ; j < information.getTotalClass() + 1 ; j++) { tmp[i+1][j] = (String) namesTable.getValueAt(i, j); } } information.setNames(tmp); relayNames(); // 인포객체에 저장된 이름 정보를 각 반 객체의 이름 부분으로 전달 } } public void relayNames() { for(int i = 0 ; i<Main.MAXPEOPLE ; i++) { switch(i){ case 0 : vf.c1.getClassTable().setValueAt(information.getName(i+1, 1), i+1, 1); break; case 1 : vf.c2.getClassTable().setValueAt(information.getName(i+1, 2), i+1, 2); break; case 2 : vf.c3.getClassTable().setValueAt(information.getName(i+1, 3), i+1, 3); break; case 3 : vf.c4.getClassTable().setValueAt(information.getName(i+1, 4), i+1, 4); break; case 4 : vf.c5.getClassTable().setValueAt(information.getName(i+1, 5), i+1, 5); break; case 5 : vf.c6.getClassTable().setValueAt(information.getName(i+1, 6), i+1, 6); break; case 6 : vf.c7.getClassTable().setValueAt(information.getName(i+1, 7), i+1, 7); break; case 7 : vf.c8.getClassTable().setValueAt(information.getName(i+1, 8), i+1, 8); break; case 8 : vf.c9.getClassTable().setValueAt(information.getName(i+1, 9), i+1, 9); break; case 9 : vf.c10.getClassTable().setValueAt(information.getName(i+1, 10), i+1, 10); break; } } } //생성자 public JPanelName (Information information, ViewFrame vf) { this.information = information; this.vf = vf; initComponent(); initEvent(); } }
package mini_1101_new; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; public class JPanelText extends JPanel implements ActionListener { Information information; ViewFrame vf; private JPanel pn1; private JButton reset; //초기화 private JButton save; //저장 private JTable textTable; private JScrollPane jspText; public void textTableSetting() { String[] header = new String[] { "단원", "성취번호", "세부능력 및 특기사항"}; String[][] contents = new String[information.getRatingSum()][3]; contents[0][0] = "평가 1"; for (int i = 0 ; i < information.getRating(0); i++) { contents[i][1] = (i+1)+""; } int sum = 0; for(int i=0 ; i < information.getRatingsLength() - 1 ; i++) { sum += information.getRating(i); contents[sum][0] = "평가 " + (i+2); //평가 이름 for (int j = 0 ; j< information.getRating(i+1) ; j++) { contents[sum+j][1] = (j+1)+""; } } for(int i = 0 ; i < information.getRatingSum() ; i++) { contents[i][2] = ""; //내용부분은 빈문자열로 초기화 } DefaultTableModel modelText = new DefaultTableModel(contents, header); textTable = new JTable(modelText); textTable.getTableHeader().setReorderingAllowed(false); //테이블 column 이동 잠금 textTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); //가로 스크롤바 생성 DefaultTableCellRenderer alignCenter = new DefaultTableCellRenderer(); alignCenter.setHorizontalAlignment(JLabel.CENTER); //가운데정렬 for(int i = 0 ; i<3 ; i++) { textTable.getColumnModel().getColumn(i).setWidth(250); //열크기 7 textTable.getColumnModel().getColumn(i).setCellRenderer(alignCenter); //가운데정렬 적용 } textTable.getColumnModel().getColumn(2).setMinWidth(800); //열크기 7 textTable.setRowHeight(25); // 행높이 25 // try { // TableCellRenderer renderer = new MyTableCellRenderer(); // textTable.setDefaultRenderer(Class.forName("java.lang.Object"), renderer); // } catch (ClassNotFoundException e) { // e.printStackTrace(); // } jspText = new JScrollPane(textTable); add(pn1, BorderLayout.NORTH); add(jspText, BorderLayout.CENTER); } public void actionEventStart() { //버튼에 액션이벤트 추가 reset.addActionListener(this); save.addActionListener(this); } public void initComponent() { pn1 = new JPanel(); reset = new JButton("초기화"); save = new JButton("저장"); actionEventStart(); //버튼에 액션이벤트 추가 pn1.setLayout(new FlowLayout(FlowLayout.RIGHT)); pn1.add(reset); pn1.add(save); setLayout(new BorderLayout()); textTableSetting(); } public void initEvent() { } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == reset) { removeAll(); textTableSetting(); } else if (e.getSource() == save ) { String[][] tmp = new String[information.getRatingSum()+1][3]; tmp[0] = new String[] {"단원", "성취번호", "세부능력 및 특기사항"}; for(int i = 0 ; i < information.getRatingSum() ; i++) { for(int j = 0 ; j < 3 ; j++) { tmp[i+1][j] = (String) textTable.getValueAt(i, j); } } information.setRatingText(tmp); } } //생성자 public JPanelText (Information information, ViewFrame vf) { this.information = information; this.vf = vf; initComponent(); initEvent(); } } //class MyTableCellRenderer extends DefaultTableCellRenderer { // @Override // public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, // boolean hasFocus, int row, int column) { // Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); // if (row % 2 == 0) { // cell.setBackground(Color.GREEN); // } else { // cell.setBackground(Color.YELLOW); // } // return cell; // } //}
Editor Settings
Theme
Key bindings
Full width
Lines