자바 GUI에 중간삽입 하는방법(StringTokenizer)사용
조회수 1530회
ex) 밑에 텍스트 필드부분에 1 aaa 남자 를 치면
String x1=st.nextToken(); -> 1//
String x2=st.nextToken();-> aaa//
String x3=st.nextToken();-> 남자
//텍스트 필드에서 엔터 쳤을경우 값을 //x1값을 읽어와서 배열에 중간삽입을 하고싶습니다.
``ex 1값을 읽어올떄 1값을 밀어내고 텍스트필드에 입력한 1 aaa 남자를 중간삽입하는 코딩 //if(문을 사용해서 조건값을 비교하면될거같은데 계속 오류나서 질문드려봅니다)
import java.awt.; import java.awt.event.; import java.util.StringTokenizer; import java.util.Arrays; public class SaveStudent extends Frame implements ActionListener,MouseListener,KeyListener{ static Label a,a1,a2; static TextField name,name1; static Button input,output; static TextArea display; String data[] = new String[100];//문자열 100개를 저장할수있는 문자열 배열 생성
String test_str[] = new String[100];
String sss[]=new String[100];
String ssss[]=new String[100];
boolean gender[]=new boolean[100];
// double d[] = new double[100]; static Checkbox s1,s2; static CheckboxGroup cbg; String sssss; int s,count=0; int i; String c[] = new String[100]; //static StringTokenizer b; public SaveStudent(String s) { super(s); this.setLayout(new FlowLayout()); a = new Label("이름"); this.add(a);
name = new TextField(20);
this.add(name);
a1= new Label("성별");
this.add(a1);
cbg=new CheckboxGroup();
s1 = new Checkbox("남",true,cbg);
this.add(s1);
s2 = new Checkbox("여",false,cbg);
this.add(s2);
input = new Button("입력");
this.add(input);
output = new Button("출력");
this.add(output);
display = new TextArea();
this.add(display);
name1 = new TextField(20);
this.add(name1);
name1.addKeyListener(this);
input.addActionListener(this);
output.addMouseListener(this);
addWindowListener(new WinListener());
} public static void main(String[] args) { String str="예제 프레임"; SaveStudent fr=new SaveStudent(str); fr.setBounds(0,0,550,550); //만들어진 Frame 객체 (fr)의 위치와 크기를 결정한다 fr.setVisible(true); // 만들어진 Frame 객체를 화면에 띄운다. }
public void actionPerformed(ActionEvent ae) { String temp = name.getText(); data[count]=temp; name.setText(""); gender[count] = s1.getState(); count++;//count = count + 1;
}
public void mouseClicked(MouseEvent qe) {
display.setText("");
for(i=0;i<count;i++) {
if(gender[i]==true) {
display.append( data[i]+" "+"남자" +"\n");
}
else if(gender[i]==false) {
display.append( data[i]+" "+"여자" +"\n");
}
}
}
public void keyTyped(KeyEvent ke) {}
public void keyPressed(KeyEvent ke) {
if(ke.getKeyChar() == KeyEvent.VK_ENTER) {
String str1 = name1.getText();
StringTokenizer st =new StringTokenizer(str1," ");
ex) 텍스트 필드에 1 aaa 남자 를 치면
String x1=st.nextToken(); -> 1
String x2=st.nextToken();-> aaa
String x3=st.nextToken();-> 남자
//텍스트 필드에서 엔터 쳤을경우 값을
//x1값을 읽어와서 배열에 중간삽입을 하고싶습니다. ex 1값을 읽어올떄 1값을 밀어내고 텍스트필드에 입력한 1 aaa 남자를 중간삽입하는 코딩
//if(문을 사용해서 조건값을 비교하면될거같은데 계속 오류나서 질문드려봅니다)
while (st.hasMoreTokens()){
이부분에 if사용해서 값을 비교한다음 넣으면 될꺼같은데 이밑에껀 안되네요.
if(x1.equals(test_str[s])) {
sss[s]=test_str[s];
test_str[s]=x1;
test_str[s+1]=sss[s];
ssss[s]=data[s];
data[s]=x2;
data[s+1]=ssss[s];
display.setText(test_str[s]+" "+data[s]);
}
}
}
``}
}
public void keyReleased(KeyEvent ke) {
}
public void mouseEntered(MouseEvent qe) {} public void mouseExited(MouseEvent qe) {} public void mousePressed(MouseEvent qe) {} public void mouseReleased(MouseEvent qe) {}
class WinListener extends WindowAdapter{ public void windowClosing(WindowEvent we) { System.exit(0); }
} }
댓글 입력