ListTest
package com.kitri.awt.event;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ListTest extends Frame implements ActionListener{
Panel p1 = new Panel();
Panel p2 = new Panel();
Panel p3 = new Panel();
List listL = new List();
List listR = new List(0, true);
TextField tfL = new TextField();
TextField tfR = new TextField();
Button btR = new Button("▷");
Button btRAll = new Button("▶");
Button btL = new Button("◁");
Button btLAll = new Button("◀");
public ListTest() {
super("리스트 테스트");
p1.setLayout(new BorderLayout(0, 10));
p1.add(listL,"Center");
p1.add(tfL,"South");
p2.setLayout(new GridLayout(6, 1, 0, 20));
p2.add(new Label(""));
p2.add(btR);
p2.add(btRAll);
p2.add(btL);
p2.add(btLAll);
p3.setLayout(new BorderLayout(0, 5));
p3.add(listR,"Center");
p3.add(tfR,"South");
setLayout(new GridLayout(1, 3, 10, 0));
add(p1);
add(p2);
add(p3);
setBounds(300, 200, 300, 500);
setVisible(true);
tfL.addActionListener(this);
tfR.addActionListener(this);
btL.addActionListener(this);
btLAll.addActionListener(this);
btR.addActionListener(this);
btRAll.addActionListener(this);
}
public static void main(String[] args) {
new ListTest();
}
@Override
public void actionPerformed(ActionEvent e) {
Object ob = e.getSource();
if(ob == tfL) {
// 1.tfL의 값 get(유효성검사)
String tmp = tfL.getText().trim();
tfL.setText("");
if (tmp.isEmpty())
return;
// 2.listL에 추가
listL.add(tmp);
} else if(ob == tfR) {
// 1.tfR의 값 get
String tmp = tfR.getText().trim();
tfR.setText("");
if (tmp.isEmpty())
return;
// 2.listR에 추가
listR.add(tmp);
} else if(ob == btL) {
String tmp = listR.getSelectedItem();
if (tmp == null)
return;
listL.add(tmp);
listR.remove(tmp);
} else if(ob == btLAll) {
// 1.listR에서 선택한 문자열 get(다중 가능)
String tmp[] = listR.getSelectedItems();
// 2.listL에 문자열들 추가
int len = tmp.length;
for (int i = 0; i < len; i++) {
listL.add(tmp[i]);
}
// 3.listR에 문자열들 삭제
for (int i = 0; i < len; i++) {
listR.remove(tmp[i]);
}
// 4.아무것도 선택안하고 버튼 누를 경우 다 보냄.다삭제
// if(tmp == null) {
// String tmpAll[] = listR.getItems();
// int lenAll = tmpAll.length;
// for (int i = 0; i < lenAll; i++) {
// listL.add(tmpAll[i]);
// }
// listR.removeAll();
// }
} else if(ob == btR) {
// 1.listL에서 선택한 문자열 get(유효성검사)
String tmp = listL.getSelectedItem();
if (tmp==null) {
return;
}
// 2.1의 값을 listR에 추가.
listR.add(tmp);
// 3.1의 값을 listL에서 제거.
listL.remove(tmp);
} else if(ob == btRAll) {
// 1.listL의 값을 모두 get
String tmp[] = listL.getItems();
// 2.1의 값을 listR에 모두 추가
int len = tmp.length;
for (int i = 0; i < len; i++) {
listR.add(tmp[i]);
}
// 3.1의 값을 listL에서 모두 제거
// for (int i=len-1;i>=0;i--) { //밑에서 부터 지워야함.(위부터 하면 에러)
// listL.remove(i);
// }
listL.removeAll(); //간단히 removeAll 써도 됨
}
}
}
결과

ColorSelector
package com.kitri.awt.event;
import java.awt.*;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import javafx.geometry.HorizontalDirection;
public class ColorSelector extends Frame implements AdjustmentListener{
Panel p1 = new Panel();
Panel p11 = new Panel();
Panel p12 = new Panel();
Panel p13 = new Panel();
Panel p2 = new Panel();
Panel p21 = new Panel();
Label lR = new Label("빨강");
Label lG = new Label("초록");
Label lB = new Label("파랑");
//0~255를 찍고 싶다면 막대 두께 10을 고려하여 0~265로 해야함
Scrollbar sbR = new Scrollbar(Scrollbar.HORIZONTAL, 127, 10, 0, 265);
Scrollbar sbG = new Scrollbar(Scrollbar.HORIZONTAL, 127, 10, 0, 265);
Scrollbar sbB = new Scrollbar(Scrollbar.HORIZONTAL, 127, 10, 0, 265);
Panel colorP = new Panel();
Label colorL = new Label();
Button ok = new Button("선택");
public ColorSelector() {
super("컬러셀렉터");
p1.setLayout(new GridLayout(5, 1, 0, 20));
p1.add(new Label());
p1.add(p11);
p1.add(p12);
p1.add(p13);
p11.setLayout(new BorderLayout(10, 0));
p12.setLayout(new BorderLayout(10, 0));
p13.setLayout(new BorderLayout(10, 0));
lR.setBackground(Color.red);
lG.setBackground(Color.green);
lB.setBackground(Color.blue);
p11.add(lR,"West");
p11.add(sbR,"Center");
p12.add(lG,"West");
p12.add(sbG,"Center");
p13.add(lB,"West");
p13.add(sbB,"Center");
p2.setLayout(new BorderLayout(0, 10));
p2.add(colorP,"Center");
p2.add(p21,"South");
p21.setLayout(new BorderLayout(10, 0));
p21.add(colorL,"Center");
p21.add(ok,"East");
colorL.setBackground(new Color(220,220,220));
setLayout(new GridLayout(1, 2, 10, 0));
add(p1);
add(p2);
setBounds(300, 200, 500, 500);
setVisible(true);
sbR.addAdjustmentListener(this);
sbG.addAdjustmentListener(this);
sbB.addAdjustmentListener(this);
changeColor();
}
public static void main(String[] args) {
new ColorSelector();
}
@Override
public void adjustmentValueChanged(AdjustmentEvent e) {
changeColor();
}
private void changeColor() {
int r = sbR.getValue();
int g = sbG.getValue();
int b = sbB.getValue();
colorP.setBackground(new Color(r,g,b));
colorL.setText("r = "+r+" g = "+g+" b = "+b);
}
}
결과

[출처] 빡쏘끼룩