java基础17_GUI

AWT(Abstract Window Toolkit),中文译为抽象窗口工具包,该包提供了一套与本地图形界面进行交互的接口,是Java提供的用来建立和设置Java的图形用户界面的基本工具。
这里写图片描述
这里写图片描述
这里写图片描述

Frame是window的子类,Frame 是带有标题和边框的顶层窗口。
常用的构造方法
Frame()
构造一个最初不可见的 Frame 新实例()。
Frame(String title)
构造一个新的、最初不可见的、具有指定标题的 Frame 对象。

package java基础.GUI;
import java.awt.*;
public class Test{
    public static void main(String args[]){
        Frame f = new Frame("Java Gui");
        f.setLayout(null);//设置布局
        Button b = new Button("Button1");
        Button b2 = new Button("Button2");
        f.add(b);//添加一个按钮组件
        f.remove(b);//移除一个按钮组件
        f.add(b2);//添加一个按钮组件
        b.setLocation(47,70);//设置按钮的x,y位置
        b.setSize(60,25);//设置按钮的大小
        b2.setLocation(88,66);//设置按钮的想x,y位置
        b2.setSize(60,25);//设置按钮的大小
        f.setSize(800,600);//设置Frame的大小
        f.setLocation(88,66);//设置Frame的位置
        f.setBackground(new Color(90,145,145,200));//设置Frame背景颜色
        System.out.println(f.isResizable());
        f.setResizable(false);//设置是否改变大小
        System.out.println(f.isResizable());
        f.setVisible(true);//设置是否可见
    }   
} 
package java基础.GUI;
import java.awt.*;
public class TestMultiFrame {
    public static void main(String args[]) {
        MyFrame f1 = new MyFrame(100, 100, 200, 200, Color.BLUE);
        MyFrame f2 = new MyFrame(300, 100, 200, 200, Color.YELLOW);
        MyFrame f3 = new MyFrame(100, 300, 200, 200, Color.GREEN);
        MyFrame f4 = new MyFrame(300, 300, 200, 200, Color.MAGENTA);
    }
}
class MyFrame extends Frame {
    static int id = 0;

    MyFrame(int x, int y, int w, int h, Color color) {
        super("MyFrame " + (++id));
        setBackground(color);
        setLayout(null);
        /**
         * setBounds(int x, int y, int width, int height) 
            移动组件并调整其大小。
         */
        setBounds(x, y, w, h);
        setVisible(true);
    }
}

这里写图片描述

package java基础.GUI;
import java.awt.*;
public class TestPanel {
    public static void main(String args[]) {
        Frame f = new Frame("Java Frame with Panel");
        Panel p = new Panel(null);
        f.setLayout(null);
        f.setBounds(300, 300, 500, 500);
        f.setBackground(new Color(0, 0, 102));
        p.setBounds(50, 50, 400, 400);
        p.setBackground(new Color(204, 204, 255));
        f.add(p);
        f.setVisible(true);
    }
}
package java基础.GUI;
import java.awt.*;
public class TestMultiPanel {
    public static void main(String args[]) {
        new MyFrame2("MyFrameWithPanel",300,300,400,300);
    }
}
class MyFrame2 extends Frame{
    private Panel p1,p2,p3,p4;
    MyFrame2(String s,int x,int y,int w,int h){
        super(s);
        setLayout(null);
        p1 = new Panel(null); p2 = new Panel(null);
        p3 = new Panel(null); p4 = new Panel(null);
        p1.setBounds(0,0,w/2,h/2);
        p2.setBounds(0,h/2,w/2,h/2);
        p3.setBounds(w/2,0,w/2,h/2);
        p4.setBounds(w/2,h/2,w/2,h/2);
        p1.setBackground(Color.BLUE);
        p2.setBackground(Color.GREEN);
        p3.setBackground(Color.YELLOW);
        p4.setBackground(Color.MAGENTA);
        add(p1);add(p2);add(p3);add(p4);
        setBounds(x,y,w,h);
        setVisible(true);
    }
}
package java基础.GUI;
import java.awt.*;
public class CenterPanel {
    public static void main(String args[]) {
        new MyFrame3(300, 300, 400, 300, Color.BLUE);
    }
}
/**
 * panel在中间的设置
 * @author Jobs1127
 *
 */
class MyFrame3 extends Frame {
    private Panel p;
    MyFrame3(int x, int y, int w, int h, Color c) {
        super("FrameWithPanel");
        setLayout(null);
        setBounds(x, y, w, h);
        setBackground(c);
        p = new Panel(null);
        p.setBounds(w / 4, h / 4, w / 2, h / 2);
        p.setBackground(Color.YELLOW);
        add(p);
        setVisible(true);
    }
}

这里写图片描述
这里写图片描述
这里写图片描述

package java基础.GUI;
import java.awt.*;
public class TestFlowLayout {
    public static void main(String args[]) {
        Frame f = new Frame("Flow Layout");
        Button button1 = new Button("Ok ----okokokokookookoko");
        Button button2 = new Button("Open");
        Button button3 = new Button("Close");
        f.setLayout(new FlowLayout(FlowLayout.LEFT));
        f.add(button1);
        f.add(button2);
        f.add(button3);
        f.setSize(100, 100);
        f.setVisible(true);
    }
}
package java基础.GUI;
import java.awt.*;

public class TestFlowLayout2 {
    public static void main(String args[]) {
        Frame f = new Frame("Java Frame");
        FlowLayout l = new FlowLayout(FlowLayout.CENTER, 20, 40);
        f.setLayout(l);
        f.setLocation(300, 400);
        f.setSize(300, 200);
        f.setBackground(new Color(204, 204, 255));
        for (int i = 1; i <= 7; i++) {
            f.add(new Button("BUTTON"));
        }
        f.setVisible(true);
    }
}

这里写图片描述
这里写图片描述

package java基础.GUI;
import java.awt.*;
public class TestBorderLayout {
    public static void main(String args[]) {
        Frame f;
        f = new Frame("Border Layout");
        Button bn = new Button("BN");
        Button bs = new Button("BS");
        Button bw = new Button("BW");
        Button be = new Button("BE");
        Button bc = new Button("BC");
        f.add(bn, "North");
        f.add(bs, "South");
        f.add(bw, "West");
        f.add(be, "East");
        f.add(bc, "Center");
        f.add(bn, BorderLayout.CENTER);
        f.add(bs, BorderLayout.SOUTH);
        f.add(bw, BorderLayout.WEST);
        f.add(be, BorderLayout.EAST);
        f.add(bc, BorderLayout.CENTER);//bn按钮将被覆盖
        f.setSize(200,200);
        f.setVisible(true);
    }
}

这里写图片描述

package java基础.GUI;

import java.awt.*;
public class TestGridLayout {
    public static void main(String args[]) {
        Frame f = new Frame("GridLayout Example");
        Button b1 = new Button("b1------hhahahahahahahn你好我很长--------1");
        Button b2 = new Button("b2");
        Button b3 = new Button("b3");
        Button b4 = new Button("b4");
        Button b5 = new Button("b5");
        Button b6 = new Button("b6");
        f.setLayout (new GridLayout(3,2));
        f.add(b1);        
        f.add(b2);
        f.add(b3);        
        f.add(b4);
        f.add(b5);        
        f.add(b6);
        f.pack(); //  pack()  调整此窗口的大小,以适合其子组件的首选大小和布局
        f.setVisible(true);
    }
}
package java基础.GUI;
import java.awt.*;
public class TenButtons {
    public static void main(String args[]) {
        Frame f = new Frame("Java Frame");
        f.setLayout(new GridLayout(2, 1));
        f.setLocation(300, 400);
        f.setSize(300, 200);
        f.setBackground(new Color(204, 204, 255));
        Panel p1 = new Panel(new BorderLayout());
        Panel p2 = new Panel(new BorderLayout());
        Panel p11 = new Panel(new GridLayout(2, 1));
        Panel p21 = new Panel(new GridLayout(2, 2));
        p1.add(new Button("BUTTON"), BorderLayout.WEST);
        p1.add(new Button("BUTTON"), BorderLayout.EAST);
        p11.add(new Button("BUTTON"));
        p11.add(new Button("BUTTON"));
        p1.add(p11, BorderLayout.CENTER);
        p2.add(new Button("BUTTON"), BorderLayout.WEST);
        p2.add(new Button("BUTTON"), BorderLayout.EAST);
        for (int i = 1; i <= 4; i++) {
            p21.add(new Button("BUTTON"));
        }
        p2.add(p21, BorderLayout.CENTER);
        f.add(p1);
        f.add(p2);
        f.setVisible(true);
    }
}

这里写图片描述

package java基础.GUI;
import java.awt.*;
import java.awt.event.*;

public class TestActionEvent {
    public static void main(String args[]) {
        Frame f = new Frame("Test");
        Button b = new Button("Press Me!");
        Monitor bh = new Monitor();// 实现ActionListener,new一个监听器
        b.addActionListener(bh);// 按钮添加一个监听器
        f.add(b, BorderLayout.CENTER);
        f.pack();
        f.setVisible(true);
    }
}
class Monitor implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("a button has been pressed");
    }
}

这里写图片描述
这里写图片描述

package java基础.GUI;
import java.awt.*;
import java.awt.event.*;
public class TFActionEvent {
    public static void main(String[] args) {
        new TFFrame();
    }

}
class TFFrame extends Frame {
    TFFrame() {//构造方法
        super("my TextField Frame");
        TextField tf = new TextField();
        add(tf);
        tf.addActionListener(new TFActionListener());//添加一个监听器
        pack();
        setVisible(true);
    }
}
/**
 * 实现ActionListener
 * @author Jobs1127
 *
 */
class TFActionListener implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
        /**
         * 当TextField发生Action事件时,会生成一个ActionEvent事件对象
         */
        TextField tf = (TextField) e.getSource();//获取事件源对象
        System.out.println(tf.getText());
        tf.setText("");
    }
}
package java基础.GUI;
import java.awt.*;
import java.awt.event.*;
public class TFPassword {
    public static void main(String[] args) {
        new TFFrame2();
    }

}
/**
 * 输入框输入时显示密码的样式
 * @author Jobs1127
 *
 */
class TFFrame2 extends Frame {
    TFFrame2() {
        TextField tf = new TextField();
        add(tf);
        tf.addActionListener(new TFActionListener2());
        /**
         * setEchoChar(char c) 
          设置此文本字段的回显字符。
         */
        tf.setEchoChar('*');
        pack();
        setVisible(true);
    }
}
class TFActionListener2 implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        TextField tf = (TextField) e.getSource();
        System.out.println(tf.getText());
        tf.setText("");
    }
}
package java基础.GUI;
import java.awt.*;
import java.awt.event.*;

public class TFMathTest extends Frame {
    TextField num1;
    TextField num2;
    TextField sum;
    public static void main(String[] args) {
        new TFMathTest().launchFrame();
    }

    public void launchFrame() {
        num1 = new TextField();
        num2 = new TextField();
        sum = new TextField();
        num1.setColumns(10);
        num2.setColumns(10);
        sum.setColumns(15);
        setLayout(new FlowLayout());
        // setSize(500, 30);
        Label lblPlus = new Label("+");
        Button btnEqual = new Button("=");
        btnEqual.addActionListener(new MyListener(this));
        add(num1);
        add(lblPlus);
        add(num2);
        add(btnEqual);
        add(sum);
        pack();
        setVisible(true);
    }
}
class MyListener implements ActionListener {
    private TFMathTest tfmt;
    public MyListener(TFMathTest tfmt) {
        this.tfmt = tfmt;
    }
    public void actionPerformed(ActionEvent e) {
        String s1 = tfmt.num1.getText();
        String s2 = tfmt.num2.getText();
        int i1 = Integer.parseInt(s1);
        int i2 = Integer.parseInt(s2);
        tfmt.sum.setText(String.valueOf(i1 + i2));
    }
}

这里写图片描述

package java基础.GUI;
import java.awt.*;
public class TestPaint {
    public static void main(String[] args) {
        new PaintFrame().launchFrame();
    }
}
class PaintFrame extends Frame {
    public void launchFrame() {
        setBounds(200, 200, 640, 480);
        setVisible(true);
    }
    @Override
    public void paint(Graphics g) {
        g.setColor(Color.red);//设置画笔的颜色
        Color c = g.getColor();//获取画笔的颜色
        g.fillOval(50, 50, 30, 30);//用画笔画了一个圆
        g.setColor(Color.green);//改变画笔的颜色,然后再画个矩形
        g.fillRect(80, 80, 40, 40);
        g.setColor(c);
    }
}

这里写图片描述
这里写图片描述

package java基础.GUI;
import java.awt.*;
import java.awt.event.*;

public class TestWindowClose {
    public static void main(String args[]) {
        new MyFrame55("MyFrame");
    }
}

class MyFrame55 extends Frame {
    MyFrame55(String s) {
        super(s);
        setLayout(null);
        setBounds(300, 300, 400, 300);
        this.setBackground(new Color(204, 204, 255));
        setVisible(true);
        // this.addWindowListener(new MyWindowMonitor());
        /*
         * 内部类的方式实现
         */
        this.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                setVisible(false);
                System.exit(-1);
            }
        });

    }
    /*
     * class MyWindowMonitor extends WindowAdapter { public void
     * windowClosing(WindowEvent e) { setVisible(false); System.exit(0); } }
     */
}
package java基础.GUI;
import java.awt.*;
import java.awt.event.*;

public class TestAnonymous {
    Frame f = new Frame("haha");
    TextField tf = new TextField(30);
    public TestAnonymous() {
        f.add(new Label("mouseDragged area"), "North");
        f.add(tf, BorderLayout.SOUTH);
        f.addMouseMotionListener(new MouseMotionAdapter() {
            @Override
            public void mouseDragged(MouseEvent e) {//鼠标按住拖动
                String s = "位置:" + e.getX() + "," + e.getY() + ")";
                tf.setText(s);
            }
            @Override
            public void mouseMoved(MouseEvent e) {//鼠标移动
                String s = "位置:" + e.getX() + "," + e.getY() + ")";
                tf.setText(s);
            }
        });
        f.addWindowListener(new WindowAdapter() {
            @Override//重写windowClosing()
            public void windowClosing(WindowEvent e) {
                f.setVisible(false);
                System.exit(-1);
            }
        });
        f.setSize(300, 200);
        f.setVisible(true);
    }
    public static void main(String args[]) {
        TestAnonymous t = new TestAnonymous();
    }
}
package java基础.GUI;

import java.awt.*;
import java.awt.event.*;

public class TestAnonymous2 {
    Frame f = new Frame("Test");
    TextField tf = new TextField(10);
    Button b1 = new Button("Start");

    public TestAnonymous2() {
        f.add(b1, "North");
        f.add(tf, "South");
        b1.addActionListener(new ActionListener() {
            private int i;
            @Override
            public void actionPerformed(ActionEvent e) {
                /**
                 * getActionCommand() 
          返回与此动作相关的命令字符串。
                 */
                tf.setText(e.getActionCommand() + ++i);
            }
        });
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        f.pack();
        f.setVisible(true);
    }

    public static void main(String args[]) {
        new TestAnonymous2();
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值