相关疑难解决方法(0)

使用JButton在Java中创建自定义按钮

我正在尝试创建一个具有自定义形状(六边形)的按钮,但其他方式就像普通的JButton一样(也就是说,与ActionListener一起使用).

我创建了一个扩展AbstractButton的类,但是当我单击它时它似乎没有向ActionListener发送事件.如果我更改类以扩展JButton它可以很好地工作,但它会搞砸按钮的显示方式.我假设有一个方法需要覆盖以使其触发事件,但我无法弄清楚它是什么.

java user-interface swing jbutton actionlistener

41
推荐指数
4
解决办法
6万
查看次数

如何在Java中的Image对象上检测鼠标单击事件?

用Java 实现" Kings'Corners "(荣耀的多人游戏纸牌).

我试图允许玩家将牌(图像)从他们的手拖到桌子上的其他地方.问题是玩家的手被"扇动",因此卡片的图像会旋转并重叠.

这是一只手的例子:

在此输入图像描述

我考虑过制作每张卡片JPanel,但问题是我必须将卡片在矩形 内部旋转JPanel,因为它们本身无法旋转.理想情况下,我想避免使用mouse-x,y公式来确定选择哪张卡.

使用事件驱动的方法,我如何确定从手中选择哪张牌?

java mouse events drag-and-drop

8
推荐指数
1
解决办法
2930
查看次数

如何让这个JButton可见?当我有渐进式扫描背景JWindow()?

如何让JButton可见?

1)当没有打开渐进背景时:JButton正在显示

在此输入图像描述

2)当没有打开渐进背景时,按下JButton仍然没有显示闪烁:

在此输入图像描述

3)当打开渐进背景时,JButton是不可见的,按此时我看到闪烁,JButton()出现并再次隐藏自动.<<问题在这里,我该如何解决?

在此输入图像描述

import java.awt.Color;
import java.awt.AlphaComposite;
import java.awt.BorderLayout;
import java.awt.Graphics;
import javax.swing.*;

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

public class ButtonTest extends JWindow implements MouseListener, MouseMotionListener {

    private static final long serialVersionUID = 1L;
    private JFrame frame = new JFrame();
    private SoftJButton softButton1;

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                ButtonTest j = new ButtonTest();
                j.createAndShowGUI();
            }
        });
    }

    public void createAndShowGUI() {
        softButton1 = new SoftJButton("Transparent Button");
        softButton1.setBackground(Color.GREEN);
        softButton1.setAlpha(0.5f);
        softButton1.setDoubleBuffered(true); …
Run Code Online (Sandbox Code Playgroud)

java linux user-interface swing awt

5
推荐指数
1
解决办法
3195
查看次数

JButton中不透明像素的事件检测

我有一个类扩展JButton,我试图应用.png图像.图像形状不规则,并被透明像素包围.我已经覆盖了paintComponent()方法,在JButton我的缓冲图像应用到按钮.现在,图像是唯一被绘制的东西,这就是我想要的.

但是,按钮仍然会检测周围矩形中的事件.有没有办法将检测限制在仅包含不透明像素的区域(或者更确切地说检测透明像素上的事件)?

按钮类的代码如下.

public class DrawButton extends JButton{

    private BufferedImage bi;

    public DrawButton(BufferedImage bi){
        setPreferredSize(new Dimension(bi.getWidth(), bi.getHeight()));
        this.bi = bi;
    }

    @Override
    protected void paintComponent(Graphics g){
        g.drawImage(bi, 0, 0, null);
        g.dispose();
    }
}
Run Code Online (Sandbox Code Playgroud)

java swing jbutton

2
推荐指数
1
解决办法
365
查看次数