事件监听、TextField监听、画笔、鼠标监听
2.2.4事件监听
- 当某个事件发生的时候,他要干什么
public class javaPractice {
public static void main(String[] args) {
Frame frame= new Frame();
Button bt=new Button("botton1");
MyActionListener myActionListener=new MyActionListener();
bt.addActionListener(myActionListener);
frame.add(bt,BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
windowclose(frame);
}
private static void windowclose(Frame frame) {
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
class MyActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("ddd");
}
}
- 多个按钮共享一个事件
public class javaPractice {
public static void main(String[] args) {
Frame frame= new Frame();
Button bt1=new Button("start");
Button bt2=new Button("stop");
bt2.setActionCommand("stop-1");
Mymonitor mymonitor=new Mymonitor();
bt1.addActionListener(mymonitor);
bt2.addActionListener(mymonitor);
frame.add(bt1,BorderLayout.NORTH);
frame.add(bt2,BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
}
}
class Mymonitor implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("按钮被点击——》"+e.getActionCommand());
}
}
2.2.5输入框TextField 监听
public class javaPractice {
public static void main(String[] args) {
new Myframe();
}
}
class Myframe extends Frame{
public Myframe(){
TextField textField=new TextField();
add(textField);
MyActionListener myActionListener=new MyActionListener();
textField.addActionListener(myActionListener);
textField.setEchoChar('*');
setVisible(true);
pack();
}
}
class MyActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
TextField filed=(TextField)e.getSource();
System.out.println(filed.getText());
filed.setText("");
}
}
2.2.6简易的计算器,组合+内部类复习
public class javaPractice {
public static void main(String[] args) {
new Calculator().loadFrame();
}
}
class Calculator extends Frame{
TextField num1,num2,num3;
public void loadFrame(){
num1=new TextField(10);
num2=new TextField(10);
num3=new TextField(20);
Button button=new Button("=");
Label label=new Label("+");
button.addActionListener(new MyCalculatorListener(this));
setLayout(new FlowLayout());
add(num1);
add(label);
add(num2);
add(button);
add(num3);
pack();
setVisible(true);
}
}
class MyCalculatorListener implements ActionListener {
Calculator calculator=null;
public MyCalculatorListener (Calculator calculator){
this.calculator=calculator;
}
@Override
public void actionPerformed(ActionEvent e) {
int n1=Integer.parseInt(calculator.num1.getText());
int n2=Integer.parseInt(calculator.num2.getText());
calculator.num3.setText(""+(n1+n2));
calculator.num1.setText("");
calculator.num2.setText("");
}
}
2.2.7画笔
public class javaPractice {
public static void main(String[] args) {
new MyPaint().loadFrame();
}
}
class MyPaint extends Frame{
public void loadFrame(){
setBounds(200,200,600,500);
setVisible(true);
}
@Override
public void paint(Graphics g) {
g.setColor(Color.red);
g.drawOval(100,100,100,100);
g.fillRect(150,200,200,200);
}
}
2.2.8鼠标监听
- 思路
- 代码
public class javaPractice {
public static void main(String[] args) {
new MyFrame("画图");
}
}
class MyFrame extends Frame{
ArrayList points;
public MyFrame(String title){
super(title);
setBounds(200,200,400,300);
points=new ArrayList<>();
this.addMouseListener(new MyMouseListener());
setVisible(true);
}
@Override
public void paint(Graphics g) {
Iterator iterator = points.iterator();
while (iterator.hasNext()){
Point point = (Point) iterator.next();
g.setColor(Color.BLACK);
g.fillOval(point.x,point.y,10,10);
}
}
public void addPaint(Point point){
points.add(point);
}
private class MyMouseListener extends MouseAdapter{
@Override
public void mousePressed(MouseEvent e) {
MyFrame frame = (MyFrame) e.getSource();
frame.addPaint(new Point(e.getX(),e.getY()));
frame.repaint();
}
}
}
2.2.9 窗口监听
public class javaPractice {
public static void main(String[] args) {
new WindowFrame();
}
}
class WindowFrame extends Frame {
public WindowFrame() {
setVisible(true);
setBounds(100,100,200,200);
setBackground(Color.blue);
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.out.println("windowClosing");
System.exit(0);
}
@Override
public void windowActivated(WindowEvent e) {
WindowFrame source = (WindowFrame)e.getSource();
source.setTitle("被激活了");
System.out.println("windowActivated");
}
});
}
}
2.2.10键盘监听
public class javaPractice {
public static void main(String[] args) {
new keyFrame();
}
}
class keyFrame extends Frame{
public keyFrame(){
setBounds(1,2,300,400);
setVisible(true);
this.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int keycode=e.getKeyCode();
System.out.println(keycode);
if(keycode==KeyEvent.VK_UP){
System.out.println("你按下了上键");
}
}
});
}
}