gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 05:46:45 24 4
gpt4 key购买 nike

所以我是一个非常新的程序员,我观看了有关如何制作鼠标监听器的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com