我对java swing很新,不熟悉paint()。我想在java swing中创建一个带有上面的按钮。 任何人都可以帮我这样做。任何指导都将不胜感激。提前致谢
答案 0 :(得分:12)
我用Google蓝色RGB搜索: 59,89,182 / Hex代码是#3B5998 和字体系列: 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这是最好的,而不使用实际图像)...比设置按钮的图像将是最好的方式
答案 1 :(得分:5)
如果您想完全覆盖按钮的外观,最常见的解决方案是创建自己的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());
答案 2 :(得分:2)
要像您的示例一样创建自定义按钮,我认为最好的方法是准备图形文档(图像等),然后将其设置为按钮的属性:
JButton button = new JButton();
button.setIcon(new ImageIcon("yourButtonImage.jpg"));
答案 3 :(得分:2)
在Oracle javadoc上,您可以看到jbutton javadoc。
具有setIcon(Icon)
实现的Jbutton java方法ImageIcon
将起到作用!
答案 4 :(得分:2)
您可以使用BasicButtonUI创建自定义外观。
JButton btn = new JButton("codelife.de");
btn.setUI(new CustomizedButtonUI(Color.RED, Color.ORANGE, Color.GREEN));
访问:http://codelife.de/2014/08/13/swing-jbutton-with-customized-look/
答案 5 :(得分: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);