주소록 만들기 하다가 막혀서요
우람늘
import java.awt.*;
import java.awt.event.*;
public class AddressBook extends Panel
{
Panel left_panel;
Panel right_panel;
Button add, delete, modify, close;
List lst;
TextField detail;
AddressActor actor;
int itemIndex;
public AddressBook(){
actor = new AddressActor(this);
setLayout(new BorderLayout());
makeRight();
makeLeft();
}
public void makeRight(){
right_panel = new Panel();
right_panel.setLayout(new GridLayout(5,1));
detail = new TextField(20);
add = new Button(추가);
add.addActionListener(actor);
delete = new Button(삭제);
delete.addActionListener(actor);
modify = new Button(수정);
modify.addActionListener(actor);
close = new Button(종료);
close.addActionListener(actor);
right_panel.add(detail);
right_panel.add(add);
right_panel.add(delete);
right_panel.add(modify);
right_panel.add(close);
add(right_panel,West);
}
public void makeLeft(){
lst = new List(10);
add(lst,Center);
}
public void addPerson(){
if(detail.getText().length() != 0)
lst.add(detail.getText());
detail.setText();
}
public void deletePerson(){
if(lst.getSelectedItem() != null)
lst.remove(lst.getSelectedItem());
}
public void modify(int mode){
if(mode == 0){
if(lst.getSelectedItem() != null){
itemIndex = lst.getSelectedIndex();
detail.setText(lst.getSelectedItem());
add.setEnabled(false);
delete.setEnabled(false);
lst.setEnabled(false);
modify.setLabel(저장);
}
}else if(mode == 1){
deletePerson();
lst.add(detail.getText(),itemIndex);
modify.setLabel(수정);
add.setEnabled(true);
delete.setEnabled(true);
lst.setEnabled(true);
detail.setText();
itemIndex = 0;
}
} public static void main(String[] args){
AddressBook book = new AddressBook();
Frame f = new Frame(인명 관리 프로그램);
f.add(book);
f.pack();
f.setVisible(true);
//종료 버튼을 누르면 종료하게 만들기 ----
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent w){
System.exit(0);
}
});
}
} class AddressActor implements ActionListener
{
AddressBook addressBook;
String command;
public AddressActor(AddressBook book){
addressBook = book;
}
public void actionPerformed(ActionEvent e){
command = e.getActionCommand();
System.out.println(command);
if(command.equals(추가))
addressBook.addPerson();
else if(command.equals(삭제))
addressBook.deletePerson();
else if(command.equals(수정))
addressBook.modify(.modify(0);
else if(command.equals(저장))
addressBook.modify(1);
else
System.exit(0);
}
}
이것은 제가 산 책의 시디에 있는 정답이구요
다음은 제가 코딩한 것입니다
실행은 되는데 문제가 있습니다.
1. 크기가 다르구요
2. 텍스트필드에 입력이 되지 않습니다.
3. 텍스트필드가 맨아래 붙였습니다.
그리고 궁금한건데요
왜 패널을 두게 선언한건가요?
하나는 쓰지도 않을 거면서
가르쳐주세요^^
import java.awt.*;
import java.awt.event.*;
public class A extends Panel
{
Panel p1;
Panel p2;
TextField tf;
Button b1;
Button b2;
Button b3;
Button b4;
List l1;
B13 a1;
int index1;
public A(){
a1=new B13(this);
setLayout(new BorderLayout());
makeright();
makeleft();
}
public void makeright(){
p1=new Panel();
p1.setLayout(new GridLayout(5,1));
tf=new TextField(20);
b1=new Button(추가);
b1.addActionListener(a1);
b2=new Button(삭제);
b2.addActionListener(a1);
b3=new Button(수정);
b3.addActionListener(a1);
b4=new Button(종료);
b4.addActionListener(a1);p1.add(b1);
p1.add(b2);
p1.add(b3);
p1.add(b4);
add(p1,West);
}
public void makeleft(){
l1=new List(10);
add(l1,Center);
}
public void me1(){
if(tf.getText().length()!=0)
l1.add(tf.getText());
tf.setText();
}
public void me2(){
if(l1.getSelectedItem()!=null)
l1.remove(l1.getSelectedItem());
}
public void me3(int a){
if(a==0){
if(l1.getSelectedItem()!=null){
index1=l1.getSelectedIndex();
tf.setText(l1.getSelectedItem());
b1.setEnabled(false);
b2.setEnabled(false);
b4.setEnabled(false);
b3.setLabel(저장);
}
}
if(a==1){
me2();
l1.add(tf.getText(),index1);
tf.setText();
b3.setLabel(수정);
b1.setEnabled(true);
b2.setEnabled(true);
b4.setEnabled(true);
index1=0;
}
}
public static void main(String[] arg){
A a2=new A();
Frame f=new Frame();
f.add(a2);
f.pack();
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
}
class B13 implements ActionListener
{
A b5;
String command;
public B13(A a2){
b5=a2;
}
public void actionPerformed(ActionEvent e){
command=new String();
command=e.getActionCommand();
System.out.println(command);
if(command.equals(추가))
b5.me1();
else if(command.equals(삭제))
b5.me2();
else if(command.equals(수정))
b5.me3(0);
else if(command.equals(저장))
b5.me3(1);
else
System.exit(0);
}
}