8

在此处输入图像描述

我对 java swing 很陌生,不熟悉paint()。我想用上面的样子在 java swing 中创建一个按钮。谁能帮我做到这一点。任何指导将不胜感激。提前致谢

4

5 回答 5

15

我用谷歌搜索了 Facebook blue RGB: 59, 89, 182/Hex Code is #3B5998和 Font family: Tahoma

在这里使用它是我通过几个电话得到的,setFocusPainted(false)例如:setBackground(new Color(59, 89, 182))setFont(new Font("Tahoma", Font.BOLD, 12))

在此处输入图像描述

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Test {

    public Test() {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new FlowLayout());
        JButton b = new JButton("Log In");//http://www.chacha.com/question/what-are-the-rgb-values-for-the-background-color-of-comments-on-facebook
        b.setBackground(new Color(59, 89, 182));
        b.setForeground(Color.WHITE);
        b.setFocusPainted(false);
        b.setFont(new Font("Tahoma", Font.BOLD, 12));//http://answers.yahoo.com/question/index?qid=20070906133202AAOvnIP
        frame.add(b);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new Test();
            }
        });
    }
}

除非您正在寻找相同的东西(在不使用实际图像的情况下,这在 IMO 中是最好的)......而不是设置按钮的图像将是最好的方法

于 2013-01-04T16:36:23.590 回答
7

如果您想完全覆盖按钮的外观,最通用的解决方案是创建自己的ButtonUI

class MyButton extends BasicButtonUI {
    @Override
    public void paint(Graphics g, JComponent c) {
        AbstractButton b = (AbstractButton) c;
        ButtonModel model = b.getModel();
        ...
    }
}

然后,您可以根据按钮的状态(翻转、聚焦、武装、按下等)绘制任何您想要的内容。查看超类实现,了解如何执行此操作的基本想法。

然后只需设置要更改的按钮的 UI:

button.setUI(new MyButton());
于 2013-01-04T16:10:39.583 回答
2

要像您的示例一样创建自定义按钮,我认为最好的方法是准备图形文档(图像等),然后将其设置为按钮的属性:

JButton button = new JButton();
button.setIcon(new ImageIcon("yourButtonImage.jpg"));
于 2013-01-04T15:03:53.537 回答
2

在 Oracle javadoc 上,您可以看到 jbutton javadoc

setIcon(Icon)带有ImageIcon实现的Jbutton java 方法可以解决问题!

于 2013-01-04T15:10:18.843 回答
1

要创建示例中显示的自定义按钮,我认为使用以下代码:-

JButton button = new JButton("Log In");
button.setFont(new Font("Serif",Font.BOLD,20));
button.setBackground(new Color(0,51,204));//import java.awt.Color;
button.setForeground(Color.WHITE);
button.setFocusPainted(false);
button.setBorderPainted(false);
于 2014-03-24T14:36:37.250 回答