드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바 기능코드와 gui를 어떻게 결합하는지 몰라서 그런데 도와주실분..
게시물ID : programmer_22929짧은주소 복사하기
작성자 : Tadogom★
추천 : 0
조회수 : 1594회
댓글수 : 1개
등록시간 : 2019/06/01 16:13:06
[code]
package eun;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
//수정 다이얼로그 1번째-------------------------------------------------
class suDialog extends JDialog{
JPanel p = new JPanel();
JLabel la = new JLabel("수정할 ID : ");
JTextField tf = new JTextField();
JButton ok1 = new JButton("수정");
JButton ok2 = new JButton("취소");
suDialog(JFrame frame, String title){
super(frame,title,true); //모델다이얼로그
this.add(p);
p.setLayout(null);
p.add(la);
la.setBounds(5,-5,80,50);
p.add(tf);
tf.setBounds(70,6,180,28);
p.add(ok1);
ok1.setBounds(125,125,60,30);
p.add(ok2);
ok2.setBounds(190,125,60,30);
this.setSize(270,200);
ok1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
suDialog2 di = new suDialog2(null, "수정");
di.setVisible(true);
}
});
ok2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
dispose();
}
});
}
}
//수정 다이얼로그 1번째-------------------------------------------------
//수정다이얼로그 2번째--------------------------------------------------
class suDialog2 extends JDialog{
JPanel p = new JPanel();
JLabel la1 = new JLabel("ID : ");
JLabel la2 = new JLabel("이름 : ");
JLabel la3 = new JLabel("성적 : ");
JTextField tf1 = new JTextField();
JTextField tf2 = new JTextField();
JTextField tf3 = new JTextField();
JButton ok1 = new JButton("수정완료");
JButton ok2 = new JButton("취소");
suDialog2(JFrame frame, String title){
super(frame,title,true); //모델다이얼로그
this.add(p);
p.setLayout(null);
p.add(la1); //ID
la1.setBounds(25,-5,80,50);
p.add(tf1);
tf1.setBounds(50,5,200,28);
p.add(la2);
la2.setBounds(10,28,80,50);
p.add(tf2);
tf2.setBounds(50,40,200,28);
p.add(la3);
la3.setBounds(10,60,80,50);
p.add(tf3);
tf3.setBounds(50,72,200,28);
p.add(ok1);
ok1.setBounds(90,105,95,30);
p.add(ok2);
ok2.setBounds(190,105,60,30);
this.setSize(270,180);
ok2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
dispose();
}
});
}
}
//수정다이얼로그 2번째--------------------------------------------------
//삭제 다이얼로그------------------------------------------------------------
class rmDialog extends JDialog{
JPanel p = new JPanel();
JLabel la = new JLabel("삭제할 ID : ");
JTextField tf = new JTextField();
JButton ok1 = new JButton("삭제");
JButton ok2 = new JButton("취소");
rmDialog(JFrame frame, String title){
super(frame,title,true); //모델다이얼로그
this.add(p);
p.setLayout(null);
p.add(la);
la.setBounds(5,10,70,20);
p.add(tf);
tf.setBounds(70,8,160,25);
p.add(ok1);
ok1.setBounds(100, 40, 60, 30);
p.add(ok2);
ok2.setBounds(167, 40, 60, 30);
this.setSize(250,120);
ok2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
dispose();
}
});
}
}
//---------------------------------------------------------------------
public class eun extends JFrame {
JPanel p = new JPanel();
JLabel la1 = new JLabel(" ID : ");
JLabel la2 = new JLabel("이름 : ");
JLabel la3 = new JLabel("성적 : ");
JTextField tx1 = new JTextField(); //아이디 텍스트필드
JTextField tx2 = new JTextField(); //이름 텍스트필드
JTextField tx3 = new JTextField(); //성적 텍스트필드
JTextArea tx4 = new JTextArea(); //빈공간 텍스트에어리어
JButton btn1 = new JButton("등록");
JButton btn2 = new JButton("수정");
JButton btn3 = new JButton("삭제");
JButton btn4 = new JButton("저장");
JButton btn5 = new JButton("불러오기");
JButton btn6 = new JButton("종료");
JButton btn7 = new JButton("전체보기");
suDialog sm = new suDialog(this,"수정"); //수정 다이얼로그
suDialog2 sm2 = new suDialog2(this,"수정"); //수정 다이얼로그 2번째
rmDialog rm = new rmDialog(this,"삭제"); //삭제 다이얼로그
eun(){
this.setTitle("학생관리시스템");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.formDesign();
this.eventHandler();
this.setSize(550,250);
this.setVisible(true);
}
//setbound (가로위치, 세로위치, 폭, 높이) , 폼디자인
public void formDesign() {
this.add(p);
p.setLayout(null);
p.add(la1);
la1.setBounds(4,0,40,40);
p.add(tx1);
tx1.setBounds(45,7,35,25);
p.add(la2);
la2.setBounds(4,15,40,70);
p.add(tx2);
tx2.setBounds(45,38,35,25);
p.add(la3);
la3.setBounds(4,30,50,100);
p.add(tx3);
tx3.setBounds(45,68,35,25);
p.add(tx4);
tx4.setText("ID를 입력해주세요");
tx4.setBounds(80,38,450,120);
p.add(btn1);
btn1.setBounds(100,160,60,30);
p.add(btn2);
btn2.setBounds(165,160,60,30);
p.add(btn3);
btn3.setBounds(230,160,60,30);
p.add(btn4);
btn4.setBounds(295,160,60,30);
p.add(btn5);
btn5.setBounds(360,160,90,30);
p.add(btn6);
btn6.setBounds(455,160,60,30);
p.add(btn7);
btn7.setBounds(85,10,90,25);
}
public void eventHandler(){
//수정 이벤트-----------------------------------------------------
btn2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
sm.setVisible(true);
}
});
//수정 이벤트-----------------------------------------------------
//삭제 이벤트------------------------------------------------------
btn3.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
rm.setVisible(true);
}
});
//삭제 이벤트------------------------------------------------------
//종료 이벤트-------------------------------------------------------
btn6.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
});
}
//종료 이벤트 -------------------------------------------------------
public static void main(String[] args) {
new eun();
}
}
[/code]
===============================================위 코드가 GUI 코드
[code]
package si;
public class Student {
private String id; //학생ID
private String name; //학생 이름
private int score; //학생 성적
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public Student(String id, String name, int score) {
// TODO Auto-generated constructor stub
this.id = id;
this.name = name;
this.score = score;
}
public String toString(){
return id +":" +name+":" + score;
}
public boolean equals(Student stu){
boolean result = false;
if(id.equals(stu.id)){
return true;
}
return result;
}
}
====================================== Student 코드
package si;
import java.util.Arrays;
public class StudentDAO {
Student[] list; //학생 리스트
private int cnt; //등록된 학생수
public StudentDAO(){
list = new Student[100]; //학생을 100명 만듦
}
//학생 데이터 등록 메소드
public boolean add(Student stu, boolean ins) {
// TODO Auto-generated method stub
if(cnt >list.length -1){
System.out.println("더이상 등록할 수 없습니다.");
return false;
}
//id가 이미 존재하면 등록 안함
for(int i = 0; i < cnt; i++){
if(stu.equals(list[i])& !ins){
System.out.println("등록된 id 입니다");
return false;
}
}
list[cnt++] = stu;
return true;
}
public Student[] getList() {
return list;
}
public void setList(Student[] list) {
this.list = list;
}
public int getCnt() {
return cnt;
}
public void setCnt(int cnt) {
this.cnt = cnt;
}
//학생 데이터 수정 메소드
public void update(Student new_stu, int i) {
// TODO Auto-generated method stub
list[i] = new_stu;
}
//등록된 학생 ID 삭제
public void delete(int i) {
list[i] = null;
for(int j = 0; j < cnt; j++){
list[i] = list[j + 1];
}
cnt--;
}
//list = 학생리스트 , cng = 등록된 학생수
//compareTo 두 이름 비교
//a와 b가 같으면 0을 반환 a가 더크면 양수, b가더크면 음수
public void sortId(){
// TODO Auto-generated method stub
Arrays.sort(list, 0, cnt, (a,b)-> b.getId().compareTo(a.getId()));
}
public void sortName(){
// TODO Auto-generated method stub
Arrays.sort(list, 0, cnt, (a,b)-> b.getName().compareTo(a.getName()));
}
public void sortScore() {
// TODO Auto-generated method stub
Arrays.sort(list, 0, cnt, (a, b) -> b.getScore() - a.getScore());
}
}
[/code]
=======================================학생관련 코드
[code]
package si;
import java.awt.List;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class StudentUI {
private Scanner scan;
private StudentDAO dao;
private Student[] temp;
public StudentUI(){
scan = new Scanner(System.in);
dao = new StudentDAO();
temp = dao.list;
}
private void showUsage() throws IOException {
// TODO Auto-generated method stub
boolean bFlag = true;
while(true){
System.out.println("==사용 방법==");
System.out.println("1.등록 2.조회 3.수정 4.삭제 5.종료 6.검색 7.정렬 8.저장");
String menu = scan.nextLine();
if(menu.equals("5") == true){
System.out.println("5. 종료");
bFlag = false;
return;
}
else{
getInput(menu);
}
}
}
//사용자 입력받기
public void getInput(String strMenu) throws IOException{
if(strMenu.equals("1")){
System.out.println("1. 등록");
System.out.print("학생ID를 입력하세요.");
String id = scan.nextLine();
System.out.print("학생 이름을 입력하세요.");
String name = scan.nextLine();
System.out.print("자바 성적을 입력하세요.");
int score = scan.nextInt();
Student stu = new Student(id, name, score);
if(dao.add(stu, false))
System.out.println("등록이 완성되었습니다.");
}
else if(strMenu.equals("2")){
System.out.println("2. 조회");
for(int i = 0; i< dao.getCnt(); i++){
System.out.println("ID : " + temp[i].getId() + "이름 :" + temp[i].getName()+ "성적 :" +temp[i].getScore());
}
}
else if(strMenu.equals("3") == true){
System.out.println("3. 수정");
String id = scan.nextLine();
for(int i = 0; i < dao.getCnt(); i++){
System.out.print("ID : ");
String new_id = scan.nextLine();
System.out.print("이름 : ");
String new_name = scan.nextLine();
System.out.print("자바 성적");
int new_score = scan.nextInt();
Student new_stu = new Student(new_id,new_name,new_score);
dao.update(new_stu, i);
System.out.println("수정이 완료됨");
}
}
else if(strMenu.equals("4")){
System.out.println("4. 삭제할 ID를 입력하세요.");
String del_id = scan.nextLine();
int tempIndex = 0;
for(int i = 0; i<dao.getCnt(); i++){
if(del_id.equals(temp[i].getId())){
tempIndex = i;
}
}
dao.delete(tempIndex);
System.out.println("등록된 ID가 삭제 되었습니다.");
}
else if(strMenu.equals("6")){
System.out.println("6. 검색할 ID 또는 이름을 입력하세요.");
String find_name = scan.nextLine();
for(int i = 0; i< dao.getCnt(); i++){
if(find_name.equals(temp[i].getId())){
System.out.println("ID : " + temp[i].getId() + "이름 :" + temp[i].getName());
}
else if(find_name.equals(temp[i].getName())){
System.out.println("이름 :" + temp[i].getName()+ "ID :" + temp[i].getId());
}
}
}
//dao.list는 학생의 수 , dao.cnt 등록된 학생수
//temp = dao.list
else if(strMenu.equals("7")){
System.out.println("1. 이름순서로 정렬 / 2. 성적순서로 정렬 ");
String number = scan.nextLine();
if (number.equals("1")) {
dao.sortName();
//dao에서 등록된 학생의 수만큼 반복 2개면 2회를 돌린후 temp(dao의 학생수에서 이름을 가져온다)
for(int i = 0; i< dao.getCnt(); i++){
System.out.println("이름 : " +temp[i].getName() + "성적:" + temp[i].getScore());
}
}
else if (number.equals("2")) {
dao.sortScore();
for(int i = 0; i< dao.getCnt(); i++){
System.out.println("이름 : " +temp[i].getName() + "성적:" + temp[i].getScore());
}
}
}
else if(strMenu.equals("8")) {
System.out.println("저장합니다.");
try {
//ro폴더를 만들고 안에 저장
FileOutputStream fos = new FileOutputStream("C:\\ro\\aa.txt");
OutputStreamWriter os = new OutputStreamWriter(fos);
for(int i = 0; i< dao.getCnt(); i++){
os.write("ID : " + temp[i].getId()+ "이름 :" + temp[i].getName()+ "성적 :" +temp[i].getScore());
os.write("\r\n");
}
System.out.println("저장완료 했습니다.");
os.close();
fos.close();
}
catch(Exception e) {
e.printStackTrace();
}
try {
FileInputStream fis = new FileInputStream("aa.txt");
InputStreamReader ois = new InputStreamReader(fis);
ois.close();
fis.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
private char[] sortScore() {
// TODO Auto-generated method stub
return null;
}
private char[] sortName() {
// TODO Auto-generated method stub
return null;
}
public static void main(String[] args) throws IOException {
StudentUI ui = new StudentUI();
ui.showUsage();
}
}
[/code]
===============전체적인 등록 삭제 등등 기능을 구현하는 코드 입니다.
혼자 기능을 어떻게 구현해야 할지 몰라서 답답한 관계로 도저히 안되서 질문 올립니다.
gui디자인도 만들었고 기본적인 기능 구현까진 했는데 버튼을 눌렀을 대 이 기능이 어떤식으로
코드를 넣어야 그 기능이 구현되는지 알고 싶습니다.. 도와주세요
기능은 scan 이나 nextLine 등 이런걸 넣으면 됐는데 gui와 기능 구현 코드랑 병합 시켜서 버튼을 누르면 출력되게끔 gui에 작동시키고 싶은데
너무 어려워서 도와주셨으면 좋겠습니다
댓글 분란 또는 분쟁 때문에
전체 댓글이 블라인드 처리되었습니다.
새로운 댓글이 없습니다.