Java swing, awt GUI 간단한 학생, 교수 관리 프로그램



실행결과

package project1012;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.Array;
import java.util.ArrayList;

import javax.swing.Action;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JWindow;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;

public class Problem_Swing {

public static void main(String[] args) {
new Test();
}

}

class Test extends JFrame implements ActionListener {
JButton btn1 = null;
JButton btn2 = null;
JButton btn3 = null;
JButton btn4 = null;
JButton btn5 = null;
JTable table = null;

public Test() {
super("문제");
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setBounds(200, 200, 500, 500);
this.setLayout(new FlowLayout());

JPanel panelComboBox = new JPanel();
JPanel panelList = new JPanel();
JPanel panelTable = new JPanel();
JPanel panelNormal = new JPanel();

panelComboBox.setLayout(new FlowLayout());
panelList.setLayout(new FlowLayout());
panelTable.setLayout(new FlowLayout());
panelNormal.setLayout(new FlowLayout());

// panelTable
String title[] = new String[3];
title[0] = "학생 이름";
title[1] = "학생 성별";
title[2] = "학생 나이";
String data[][] = new String[0][0];
// data[0][0] ="1";
// data[0][1] ="남동길";
// data[0][2] ="27";
//
// data[1][0] ="2";
// data[1][1] ="이효림";
// data[1][2] ="23";

table = new JTable(data, title);
JScrollPane sp = new JScrollPane(table);
sp.setPreferredSize(new Dimension(300, 200));

panelTable.add(sp);

// panelNormal
btn1 = new JButton("학생 등록");
btn1.addActionListener(this);
panelNormal.add(btn1);

btn2 = new JButton("학생 삭제");
btn2.addActionListener(this);
panelNormal.add(btn2);

btn3 = new JButton("학생 출력");
btn3.addActionListener(this);
panelNormal.add(btn3);

btn4 = new JButton("교수 등록");
btn4.addActionListener(this);
panelNormal.add(btn4);

btn5 = new JButton("교수  출력");
btn5.addActionListener(this);
panelNormal.add(btn5);

// 패널 연결
this.add(panelComboBox);
this.add(panelList);
this.add(panelTable);
this.add(panelNormal);

this.setVisible(true);
}

public void refreshTable() {
String titleTemp[] = new String[3];
titleTemp[0] = "학생 이름";
titleTemp[1] = "학생 성별";
titleTemp[2] = "학생 나이";

int size = StuManager.list.size();
String[][] dataStudentArray = new String[size][3];

for (int i = 0; i < size; i++) {
Stu dataStudent = StuManager.list.get(i);

dataStudentArray[i][0] = dataStudent.name;
dataStudentArray[i][1] = dataStudent.sex;
dataStudentArray[i][2] = dataStudent.age;
}

table.setModel(new DefaultTableModel(dataStudentArray, titleTemp));
}

@Override
public void actionPerformed(ActionEvent e) {

if (e.getSource() == btn1) {
new InputStud();
}
if (e.getSource() == btn2) {
if (table.getSelectedRow() == -1) {
} else {
int deleteIndex = table.getSelectedRow();

StuManager.list.remove(deleteIndex);
this.refreshTable();
}
}
if (e.getSource() == btn3) {
String titleTemp[] = new String[3];
titleTemp[0] = "학생 이름";
titleTemp[1] = "학생 성별";
titleTemp[2] = "학생 나이";

int size = StuManager.list.size();
String[][] dataStudentArray = new String[size][3];

for (int i = 0; i < size; i++) {
Stu dataStudent = StuManager.list.get(i);

dataStudentArray[i][0] = dataStudent.name;
dataStudentArray[i][1] = dataStudent.sex;
dataStudentArray[i][2] = dataStudent.age;
}

table.setModel(new DefaultTableModel(dataStudentArray, titleTemp));
}
if (e.getSource() == btn4) {
new InputPro();
}
if (e.getSource() == btn5) {
new ProPrint();
}
}

}
class ProPrint extends JFrame implements ActionListener {
JButton btn1 = null;
JButton btn2 = null;
JTable table = null;
JTable table2 = null;

ArrayList<Stu> temp_list;
public ProPrint() {
super("문제");
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setBounds(200, 200, 500, 600);
this.setLayout(new FlowLayout());

JPanel panelPrint = new JPanel();
JPanel panelButton = new JPanel();
JPanel panelRelated = new JPanel();

panelPrint.setLayout(new FlowLayout());
panelButton.setLayout(new FlowLayout());
panelRelated.setLayout(new FlowLayout());

String title[] = new String[3];
title[0] = "이름";
title[1] = "성별";
title[2] = "나이";



int size = ProManager.list.size();
String[][] dataProArray = new String[size][3];

for (int i = 0; i < size; i++) {
Pro dataPro = ProManager.list.get(i);

dataProArray[i][0] = dataPro.name;
dataProArray[i][1] = dataPro.sex;
dataProArray[i][2] = dataPro.age;
}


table = new JTable(dataProArray, title);
JScrollPane sp = new JScrollPane(table);
sp.setPreferredSize(new Dimension(300, 200));
panelPrint.add(sp);

btn1 = new JButton("관련 학생 정보 출력");
btn1.addActionListener(this);
panelButton.add(btn1);

btn2 = new JButton("확인");
btn2.addActionListener(this);
panelButton.add(btn2);


String data[][] = new String[0][0];
table2 = new JTable(data,title);
JScrollPane sp2 = new JScrollPane(table2);
sp2.setPreferredSize(new Dimension(300, 200));
panelRelated.add(sp2);

this.add(panelPrint);
this.add(panelButton);
this.add(panelRelated);
this.setVisible(true);
}

public void refreshTable(){
String titleTemp[] = new String[3];
titleTemp[0] = "이름";
titleTemp[1] = "성별";
titleTemp[2] = "나이";
int size = temp_list.size();
String[][] dataStudentArray = new String[size][3];

for (int i = 0; i < size; i++) {
Stu dataStudent = temp_list.get(i);

dataStudentArray[i][0] = dataStudent.name;
dataStudentArray[i][1] = dataStudent.sex;
dataStudentArray[i][2] = dataStudent.age;
}

table2.setModel(new DefaultTableModel(dataStudentArray, titleTemp));
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==btn1){
if (table.getSelectedRow() == -1) {
} else {
int deleteIndex = table.getSelectedRow();
Pro temp = ProManager.list.get(deleteIndex);
temp_list = new ArrayList<Stu>();
for(Stu s : StuManager.list){
if(s.professor.equals(temp.name)){
temp_list.add(s);
}
}


this.refreshTable();
}
}
if(e.getSource()==btn2){
dispose();
}

}
}

class InputStud extends JFrame implements ActionListener {

JLabel name, age, professor;
JTextField name_t, age_t;
JRadioButton male, female;
JComboBox professor_combo;
JButton btn1, btn2;
ButtonGroup group;

public InputStud() {
super("학생 입력");
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setBounds(200, 200, 250, 300);
this.setLayout(new FlowLayout());

JPanel panelName = new JPanel();
JPanel panelRadio = new JPanel();
JPanel panelAge = new JPanel();
JPanel panelCombo = new JPanel();
JPanel panelButton = new JPanel();

panelName.setLayout(new FlowLayout());
panelRadio.setLayout(new FlowLayout());
panelAge.setLayout(new FlowLayout());
panelCombo.setLayout(new FlowLayout());
panelButton.setLayout(new FlowLayout());

name = new JLabel("이름 : ");
age = new JLabel("나이 : ");
professor = new JLabel("교수 : ");
name_t = new JTextField(10);
age_t = new JTextField(10);
professor_combo = new JComboBox();
male = new JRadioButton("남자", false);
female = new JRadioButton("여자", false);
btn1 = new JButton("확인");
btn2 = new JButton("취소");
btn1.addActionListener(this);
btn2.addActionListener(this);
group = new ButtonGroup();
group.add(male);
group.add(female);

for (Pro p : ProManager.list) {
professor_combo.addItem(p.name);
}

panelName.add(name);
panelName.add(name_t);

panelRadio.add(male);
panelRadio.add(female);

panelAge.add(age);
panelAge.add(age_t);

panelCombo.add(professor);
panelCombo.add(professor_combo);

panelButton.add(btn1);
panelButton.add(btn2);

this.add(panelName);
this.add(panelRadio);
this.add(panelAge);
this.add(panelCombo);
this.add(panelButton, BorderLayout.SOUTH);

this.setVisible(true);
}

@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btn1) {
String str = (String) professor_combo.getSelectedItem();
int selectedIndex = professor_combo.getSelectedIndex();
String sex = "";
if (male.isSelected()) {
sex = male.getText().toString();
} else {
sex = female.getText().toString();
}
Stu s = new Stu(name_t.getText().toString().trim(), sex, age_t.getText().toString().trim(),str);
StuManager.list.add(s);
male.setSelected(false);
female.setSelected(false);
name_t.setText(null);
age_t.setText(null);

}
if (e.getSource() == btn2) {
dispose();
}
}

}

class InputPro extends JFrame implements ActionListener {
JLabel name, age, subject_l;
JTextField name_t, age_t;
JRadioButton male, female;
JComboBox subject;
JButton btn1, btn2;
ButtonGroup group;

public InputPro() {
super("교수 입력");

this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setBounds(200, 200, 250, 300);
this.setLayout(new FlowLayout());

JPanel panelName = new JPanel();
JPanel panelRadio = new JPanel();
JPanel panelAge = new JPanel();
JPanel panelCombo = new JPanel();
JPanel panelButton = new JPanel();

panelName.setLayout(new FlowLayout());
panelRadio.setLayout(new FlowLayout());
panelAge.setLayout(new FlowLayout());
panelCombo.setLayout(new FlowLayout());
panelButton.setLayout(new FlowLayout());

name = new JLabel("이름 : ");
age = new JLabel("나이 : ");
subject_l = new JLabel("과목 : ");
name_t = new JTextField(10);
age_t = new JTextField(10);
subject = new JComboBox();
male = new JRadioButton("남자", false);
female = new JRadioButton("여자", false);
btn1 = new JButton("확인");
btn2 = new JButton("취소");
btn1.addActionListener(this);
btn2.addActionListener(this);
group = new ButtonGroup();
group.add(male);
group.add(female);
subject.addItem("Java");
subject.addItem("Html");
subject.addItem("Jsp");
subject.addItem("Oracle");

panelName.add(name);
panelName.add(name_t);

panelRadio.add(male);
panelRadio.add(female);

panelAge.add(age);
panelAge.add(age_t);

panelCombo.add(subject_l);
panelCombo.add(subject);

panelButton.add(btn1);
panelButton.add(btn2);

this.add(panelName);
this.add(panelRadio);
this.add(panelAge);
this.add(panelCombo);
this.add(panelButton, BorderLayout.SOUTH);

this.setVisible(true);

}

@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btn1) {
String str = (String) subject.getSelectedItem();
int selectedIndex = subject.getSelectedIndex();
String sex = "";
if (male.isSelected()) {
sex = male.getText().toString();
} else {
sex = female.getText().toString();
}
Pro p = new Pro(name_t.getText().toString().trim(), sex, age_t.getText().toString().trim(), str);
ProManager.list.add(p);
male.setSelected(false);
female.setSelected(false);
name_t.setText(null);
age_t.setText(null);

}
if (e.getSource() == btn2) {
dispose();
}
}

}

class Stu {
String name;
String sex;
String age;
String professor;

public Stu(String name, String sex, String age,String professor) {
this.name = name;
this.sex = sex;
this.age = age;
this.professor = professor;
}
}

class StuManager {
public static ArrayList<Stu> list = new ArrayList<Stu>();
}

class Pro {
String name;
String sex;
String age;
String subject;

// ArrayList<Stu> s = new ArrayList<Stu>();

public Pro(String name, String sex, String age, String subject) {
this.name = name;
this.sex = sex;
this.age = age;
this.subject = subject;
}
}

class ProManager {
public static ArrayList<Pro> list = new ArrayList<Pro>();
}

댓글

이 블로그의 인기 게시물

About JVM Warm up

About idempotent

About Kafka Basic

About ZGC

sneak peek jitpack

Spring Boot Actuator readiness, liveness probes on k8s

About Websocket minimize data size and data transfer cost on cloud

About G1 GC

대학생 코딩 과제 대행 java, python, oracle 네 번째