java - 鼠标点击时显示图像?

标签 java image swing

所以我是一个非常新的程序员,我观看了有关如何制作鼠标监听器的 YouTube 教程。我仍然对鼠标监听器是什么非常模糊,但是我的代码当前所在的位置(我主要只是从视频中复制它),背景开始为白色,当释放鼠标时,背景变为红色。

我实际上想做的是显示图像,当释放鼠标时,显示不同的图像。

我该怎么做?

这是我当前的代码:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JFrame;
import javax.imageio.*;
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.net.URL;


public class switchScreens extends JFrame{
    private JPanel mousepanel;
    private JLabel statusbar;

    public switchScreens(){
        super("title");

        mousepanel = new JPanel();
        mousepanel.setBackground(Color.WHITE);
        add(mousepanel, BorderLayout.CENTER);

        Handlerclass handler = new Handlerclass();
        mousepanel.addMouseListener(handler);
    }
        private class Handlerclass implements MouseListener
        {
            public void mouseClicked(MouseEvent event){
            }
            public void mousePressed(MouseEvent event){
            }
            public void mouseReleased(MouseEvent event){
                mousepanel.setBackground(Color.RED);
            }
            public void mouseEntered(MouseEvent event){
            }
            public void mouseExited(MouseEvent event){
            }       
    }

}

更新:我的新代码;单击时背景根本不改变

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.net.URL;
import javax.swing.JFrame;


public class switchScreens extends JFrame{

    private JLabel mousetest;
    ImageIcon icon = new ImageIcon("Untitled.png");

    public switchScreens(){

        mousetest = new JLabel();
        add(mousetest, BorderLayout.CENTER);

        Handlerclass handler = new Handlerclass();
        mousetest.addMouseListener(handler);
    }
        private class Handlerclass implements MouseListener
        {
            public void mouseClicked(MouseEvent event){
            }
            public void mousePressed(MouseEvent event){
            }
            public void mouseReleased(MouseEvent event){
                mousetest.setIcon(icon);
            }
            public void mouseEntered(MouseEvent event){
            }
            public void mouseExited(MouseEvent event){
            }       
    }

最佳答案

您声明:

  • the background starts out white and when the mouse is released, the background changes to red.
  • What I actually want to do is display an image, and when the mouse is released, display a different image.

然后您显示此代码:

public void mouseReleased(MouseEvent event){
    mousepanel.setBackground(Color.RED);
}
<小时/>

所以你知道如何使用 MouseListener 以及代码应该在哪里进行更改,因此问题的解决方案很简单 - 而不是 mousepanel.setBackground(Color.RED); 输入代码来更改图像。但如何执行此操作的所有重要细节将取决于您的问题的详细信息,以及您未告诉我们或向我们展示的详细信息。具体比如什么图片?在哪里显示它?在鼠标发布的网站上?您知道如何显示任何图像吗?

<小时/>

编辑
再说一遍,您的问题的详细信息是什么?

  • 除非您有多个图像并且它们很大,否则您可能希望在渲染 GUI 之前将它们读入变量中,也许是在类的构造函数中。我通常使用 ImageIO.read(...) 方法读取图像。
  • 如果您的目标是在 mouseReleased 上为 GUI 提供背景图像,那么一种方法是将 JLabel 放入 JFrame 中,将图像转换为 ImageIcon,然后调用 JLabel 变量的 setIcon(myIcon) 在 mouseReleased 上,将您创建的 ImageIcon 传递到方法调用中。
  • 如果您的目标完全不同,那么您将再次需要告诉我们详细信息。

关于java - 鼠标点击时显示图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23985471/

相关文章:

java - 了解具有多个项目引用的 Hibernate 级联行为

java - Java中使用for循环的等边三角形

javascript - Canvas 渲染

c++ - 原始 RGB 值到 JPEG

java - 在 Ubuntu 12.04 (GTK) 下改进 JFileChooser

java - 如何使用 Vaadin 上传图像 Java Spring 应用程序

html - 不能并排放置没有边距的表格图像

java - 缓冲图像 : Performance of fillRect/drawImage with transparent color/image

java - 刷新 jLabel 中的计数器

java - 如何创建一个像 Internet Download Manager 应用程序中使用的表一样的 JTable?