制作一个按钮

问题描述 投票:3回答:1

我在这里做一个菜单,我的比赛,我可以按“开始”按钮在屏幕中导航。我想实现的,但是我已经奠定了CustomButtons类的方法,它工作的方式,我只能让其中有一个功能,一个按键类一个单独的按钮,为了解决这个问题,我决定做一个单独的“按钮”方法,该方法包含该按钮的参数。我把这种现象称之为涂料成分内,以确保它正在显示但只有文字“START”被显示在屏幕上的画面。按钮,边框,字体等的背景色不被改变旁边的电话。

public class CustomButton extends JButton implements MouseListener {

    Dimension size = new Dimension(100, 50);

    boolean hover = false;
    boolean click = false;
    boolean isMethodCalled = false;

    String text = "";

    public CustomButton(String text, Button bb) {
        setVisible(true);
        setFocusable(true);
        setContentAreaFilled(false);
        setBorderPainted(false);

        this.text = text;

        addMouseListener(this);
    }

    public void Button(Graphics g) {
        g.setColor(new Color(255, 255, hover ? 180 : 102 ));
        g.fillRect(0, 0, 250, 7);
        g.fillRect(0, 0, 7, 150);

        g.setColor(Color.ORANGE); // button background color
        g.fillRect(14, 14, 222, 122);
        g.setColor(Color.WHITE); // text color 
        g.setFont(Font.decode("arial-BOLD-24"));

        FontMetrics metrics = g.getFontMetrics();
        int width = metrics.stringWidth(text);
        g.drawString(text, 17, 40);
    }

    public void paintComponent(Graphics g) {
        super.paintComponent(g);

        Button menu = new Button();
    }

    public void setButtonText(String text) {
        this.text = text;
    }
    public String getButtonText(String text) {
        return text;
    }

    public void mouseEntered(MouseEvent e) {
        hover = true;
    }
    public void mouseExited(MouseEvent e) {
        hover = false;
    }
    public void mousePressed(MouseEvent e) {
        click = true;
    }
    public void mouseReleased(MouseEvent e) {
        click = false;
    }
    public void mouseClicked(MouseEvent e) {
    }
}

任何人有任何想法,我怎么能做出这么一次按钮,它从“按钮”的方法称为工程,以便它显示出来时,它应该是,如果所有的图形设置将被该方法的paintComponent中设置?

这不是正在发生的事情。我不希望这样的事情发生:

这是我希望发生的按钮:

java swing jbutton
1个回答
2
投票

有你需要的自定义外观,它的更好,你的自定义按钮延伸JLabel。下面的代码演示了如何通过q​​azxswpoi延长编写自定义按钮。

此按钮支持点击事件。我们可以添加JLabels听单击事件。当用户在徘徊鼠标它改变背景颜色为棕色。

ActionListener
© www.soinside.com 2019 - 2024. All rights reserved.