文章目录

  • 题目一
  • 题目二
  • 题目三

题目一

(一)编程实现:在JFrame中加入2个按钮(JButton)和1个标签(JLabel),按钮上显示的名字分别为“按钮1”和“按钮2”。单击每个按钮,JLabel上都能显示其名字。

拿到一个按钮的坐标位置java java如何获取按钮的名字_intellij idea


源码:

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class Test01 {
    public Test01() {
        JFrame f = new JFrame("实验一");
        f.setLayout(new FlowLayout());
        JButton btn1 = new JButton("Button1 ");
        JButton btn2 = new JButton("Button2");
        JLabel label = new JLabel("按钮2");
        addAction(btn1, label);
        addAction(btn2, label);
        f.add(btn1);
        f.add(btn2);
        f.add(label);
        defaultSwing(f);
    }

    private void addAction(JButton btn, JLabel label) {
        btn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String s = e.getActionCommand();
                label.setText(s);
            }
        });
    }

    private void defaultSwing(JFrame f) {
        f.setSize(500, 200);
        f.setLocationRelativeTo(null);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        new Test01();
    }
}

运行截图:

拿到一个按钮的坐标位置java java如何获取按钮的名字_java_02

拿到一个按钮的坐标位置java java如何获取按钮的名字_intellij idea_03

题目二

(二)编程实现:在JFrame中加入下列菜单:文件、编辑。

要求:

(1)“文件”中包含:新建、打开和退出。“新建”中包含:JAVA文档、HTML文档。

(2)“编辑”中包含:粘贴、查找、全选。

(3)点击菜单项“退出”,可退出程序。

(4)“打开”和“退出”之间有分割线。

(5)为“打开”添加快捷键Ctrl+O。

拿到一个按钮的坐标位置java java如何获取按钮的名字_swing_04

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;

import static java.awt.event.InputEvent.CTRL_DOWN_MASK;

public class Test02 {
    public static void main(String args[]) {
        JFrame f = new JFrame("实验二");
        //创建并添加菜单栏
        JMenuBar menuBar = new JMenuBar();
        f.setJMenuBar(menuBar);

        JMenu menuFile = new JMenu("文件(F)"), menuEdit = new JMenu("编辑(E)");
        menuBar.add(menuFile);
        menuBar.add(menuEdit);
        //添加“文件”菜单的各菜单项
        JMenu itemCreate = new JMenu("新建");
        JMenuItem itemOpen = new JMenuItem("打开");
        JMenuItem itemExit = new JMenuItem("退出");
        JMenuItem itemCreate1 = new JMenuItem("JAVA文档");
        JMenuItem itemCreate2 = new JMenuItem("HTML文档");
        itemCreate.add(itemCreate1);
        itemCreate.add(itemCreate2);
        itemOpen.setAccelerator(KeyStroke.getKeyStroke('O', CTRL_DOWN_MASK));
        //添加文件里的按钮
        menuFile.add(itemCreate);
        menuFile.add(itemOpen);
        menuFile.addSeparator();
        menuFile.add(itemExit);

        //添加“编辑”菜单的各菜单项
        JMenuItem itemcopy = new JMenuItem("粘贴");
        JMenuItem itemsearch = new JMenuItem("查找");
        JMenuItem itemadd = new JMenuItem("全选");
        menuEdit.add(itemcopy);
        menuEdit.add(itemsearch);
        menuEdit.add(itemadd);
        defaultLayout(f);
    }

    private static void defaultLayout(JFrame f) {
        //布局常用方式
        f.setSize(350, 250);
        f.setLocationRelativeTo(null);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
}

运行截图:

拿到一个按钮的坐标位置java java如何获取按钮的名字_intellij idea_05

题目三

(三)按要求编程实现。

要求:

(1)编写一个窗口,在窗口中有一个面板和三个按钮。

(2)窗口的中间为面板,南边为三个按钮。

(3)按钮的颜色分别为红、绿、蓝。按钮上标签的名字分别为“红色”,“绿色”,“蓝色”。

(4)单击相应的按钮,在画布上绘制相应颜色的填充圆。

拿到一个按钮的坐标位置java java如何获取按钮的名字_intellij idea_06


源码:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Test03 {
    public static void main(String[] args) {
        new MyFrame3();
    }
}
class MyCanvas extends JComponent {
    private Color c = Color.black;
    public void paint(Graphics g) {
        g.setColor(c);
        g.fillOval(10, 10, 200, 200);
    }

    public Color getC() {
        return c;
    }

    public void setC(Color c) {
        this.c = c;
    }

}
class MyFrame3 extends JFrame {
    JPanel panel;
    JButton red, green, blue;
    MyCanvas canvas;

    MyFrame3() {
        canvas = new MyCanvas();
        panel = new JPanel();
        red = new JButton("红色");
        red.setBackground(Color.red);
        red.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                canvas.setC(Color.red);
                canvas.repaint();
            }
        });
        green = new JButton("绿色");
        green.setBackground(Color.green);
        green.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                canvas.setC(Color.green);
                canvas.repaint();
            }
        });
        blue = new JButton("蓝色");
        blue.setBackground(Color.blue);
        blue.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                canvas.setC(Color.blue);
                canvas.repaint();
            }
        });
        this.add(canvas, BorderLayout.CENTER);
        panel.add(red);
        panel.add(green);
        panel.add(blue);
        this.add(panel, BorderLayout.SOUTH);
        setSize(300, 300);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setResizable(true);
        setVisible(true);
     }
}

运行截图:

拿到一个按钮的坐标位置java java如何获取按钮的名字_intellij idea_07

实验小结:
收获:

1、三种布局模式:1)BorderLayout 2)FloatLayout 3)SpringLayout
 2、学会布局模式,以及组件的添加。
 3、学会监听事件的运用,如鼠标点击事件,键盘按下事件等。
 4、学会菜单栏的创建,快捷键、菜单栏子项的添加。
 5、常用布局代码:
 f.setSize(350, 250); //设置大小
 f.setLocationRelativeTo(null); //显示在中间
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭
 f.setVisible(true); //可视化
 6、swing以后较为少用,但是基础的布局方式以及组件需要了解和能熟悉运用。