java - 向图形添加功能

标签 java swing graphics

这是我的代码,我想向我制作的矩形添加功能,例如当您单击它时,会弹出一个窗口

public class codetwo extends JPanel {
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        this.setBackground(Color.LIGHT_GRAY);
        g.setColor(Color.RED);
        g.fillRect(110,110, 120, 120);
    }

    public static void main(String args[]) {
        codetwo cd = new codetwo(); 
        JFrame frame = new JFrame("Title");
        frame.add(cd);
        frame.setSize(440,350);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

最佳答案

为此,您需要使用 Mouselistener。

public class codetwo extends JPanel {
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        this.setBackground(Color.LIGHT_GRAY);
        g.setColor(Color.RED);
        g.fillRect(110,110, 120, 120);
    }

    public static void main(String args[]) {
        codetwo cd = new codetwo(); 
cd.addMouseListener(new MouseListener(){

            @Override
            public void mouseClicked(MouseEvent e) {
                // TODO Auto-generated method stub
                if  (e.getX() >= 110 && e.getX() <= 230 && e.getY() >= 110 && e.getY() <= 230) { 
                    JOptionPane.showMessageDialog(cd, "Some one clicked here ?", "Listening", JOptionPane.INFORMATION_MESSAGE);
                }
            }

            @Override
            public void mousePressed(MouseEvent e) {
                // TODO Auto-generated method stub

            }

            @Override
            public void mouseReleased(MouseEvent e) {
                // TODO Auto-generated method stub

            }

            @Override
            public void mouseEntered(MouseEvent e) {
                // TODO Auto-generated method stub

            }

            @Override
            public void mouseExited(MouseEvent e) {
                // TODO Auto-generated method stub

            }
        JFrame frame = new JFrame("Title");
        frame.add(cd);
        frame.setSize(440,350);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

关于java - 向图形添加功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52458003/

相关文章:

java - 在 GridBagLayout 中动态更改组件权重

c++ - 如何准备一个恒定的基准环境

java - 一段Swing代码如何变成真正的图形应用程序

java - Java Graphics2d Fill 方法是如何工作的?

java - 如何更改 JTextField 的不可编辑前景

java - 如何编写 toString() 方法

java - 撤消和重做,无需存储图形坐标

winforms - 图形.DrawLines : Parameter is not valid

java - Android Studio Java 可运行未运行

java - TTP 状态 500 - 实例化 servlet 类时出错 com.zestedesavoir.servlets.Test>