gpt4 book ai didi

Java Swing 保留按钮的外观和感觉,但保留背景颜色

转载 作者:行者123 更新时间:2023-12-01 12:53:34 25 4
gpt4 key购买 nike

我想更改 Java Swing JButton 的背景颜色。

原来的按钮是这样的: enter image description here

更改此按钮的背景颜色后,它看起来像这样: enter image description here

原来的具有“按钮”的外观和感觉。然而,黄色的看起来就像一个黄色的纯背景,上面有一些文字。

问题:是否有任何简单的方法可以更改此特定 Jbutton 的背景颜色但保持外观和感觉?

附注我知道我可以制作图像并将其附加到按钮上。但是,按钮大小并不总是相同,因此图像可能不是一个好主意。有没有其他方法可以简单地添加一些代码例如添加一些边框、边距等,以便它具有更多的按钮感觉?

更新:

我希望按钮在更改背景颜色后看起来像按钮。如果我需要添加渐变背景或做其他事情并不重要。我正在寻找一种最简单的方法来做到这一点。

最佳答案

您可以使用 GradientPaint 作为背景。

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

private static void createAndShowGUI(){
final JFrame frame = new JFrame("Gradient JButton Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new FlowLayout());
frame.add(JGradientButton.newInstance());
frame.setSize(new Dimension(300, 150)); // used for demonstration
//frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

private static final class JGradientButton extends JButton{
private JGradientButton(){
super("Gradient Button");
setContentAreaFilled(false);
setFocusPainted(false); // used for demonstration
}

@Override
protected void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D)g.create();
g2.setPaint(new GradientPaint(
new Point(0, 0),
Color.WHITE,
new Point(0, getHeight()),
Color.PINK.darker()));
g2.fillRect(0, 0, getWidth(), getHeight());
g2.dispose();

super.paintComponent(g);
}

public static final JGradientButton newInstance(){
return new JGradientButton();
}
}
}

enter image description here

示例取自 Change JButton gradient color, but only for one button, not all

关于Java Swing 保留按钮的外观和感觉,但保留背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24043350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com