相关疑难解决方法(0)

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

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

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

java user-interface swing jbutton actionlistener

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

如何设置JButton的按钮颜色(不是背景颜色)

我有一个JButton我想将背景颜色改为白色.使用金属外观时,我可以达到预期的效果setBackground:

金属外观和风格JButton与白色背景

不幸的是,使用Windows LAF时"背景颜色"的概念是不同的; 背景颜色是按钮周围绘制的颜色:

Windows外观风格的JButton,白色背景

我想使用Windows LAF,但允许将此按钮的颜色JButton更改为白色.我该怎么做呢?

java swing jbutton

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

覆盖JButton paintComponent()不起作用

我想绘制自己的JButton版本,所以我重写了paintComponent()方法,并画了一个渐变roundRect.这可行,但在那之后,我想在它上面绘制Button的字符串,并在编译时,我没有错误消息.但是在运行时,我只看到了roundRect,渐变,就像我想要的那样(我也可以点击它),但是String是不可见的......

这是我的代码:

import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;

public class JIconButton extends JButton implements MouseListener
{
    private boolean mouseInside;
    public JIconButton(String file, String text)
    {
        super(text, new ImageIcon(file));
        setBorder(new LineBorder(Color.LIGHT_GRAY, 0, true));
        setContentAreaFilled(false);
        setFocusPainted(false);
        addMouseListener(this);
        setVisible(true);
    }

    public void mouseClicked(MouseEvent e)
    {

    }

    public void mouseEntered(MouseEvent e)
    {

    }

    public void mouseExited(MouseEvent e)
    {

    }

    public void mousePressed(MouseEvent e)
    {

    }

    public void mouseReleased(MouseEvent e) 
    {

    }

    @Override
    protected void paintComponent(Graphics g)
    {
        Graphics2D g2 = …
Run Code Online (Sandbox Code Playgroud)

java graphics swing paint jbutton

3
推荐指数
1
解决办法
9388
查看次数

Java:具有自定义形状的JButton:填充金属外观和感觉渐变

我有一个新的派生类,JButton它给了我一个Enter-Button的形状.

现在我想让它填充与默认相同的渐变JButton.但是我不知道.我怎么能这样做?

此刻它充满了纯黑色.

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Polygon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class EnterButton extends JButton {

    private Polygon shape;

    public EnterButton() {
        this.shape = new Polygon();
        // initialisiere Form
        this.initialize();
    }

    protected void initialize() {
        Point p1, p2, p3, p4, p5, p6;

        this.setSize(90, 120);

        p1 = new Point(0, 0);
        p2 = new Point(0, 60);
        p3 = new Point(30, 60);
        p4 = new Point(30, 120);
        p5 = new Point(90, 120); …
Run Code Online (Sandbox Code Playgroud)

java swing look-and-feel jbutton

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