gpt4 book ai didi

java - Swing : Setting JButton's background

转载 作者:行者123 更新时间:2023-11-29 08:10:56 25 4
gpt4 key购买 nike

我想设置JButton 的背景颜色。为此,我使用 setBackground() 方法。

此方法只是设置按钮的边框颜色,而不是指定颜色的整个按钮。为什么这样 ?这是设置按钮背景颜色的唯一方法。我在哪里犯了错误,因为它只设置了指定颜色按钮的边框,而不是实际按钮?

代码:

    account_btn.setAction(actionMap.get("AccountingClicked")); // NOI18N
account_btn.setBackground(Utility.getBackgroundColor());
account_btn.setFont(Utility.getButtonFont());
account_btn.setForeground(Utility.getTextColor());
org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(cashaccountingapp.CashAccountingApp.class).getContext().getResourceMap(MainPanel.class);
account_btn.setText(resourceMap.getString("account_btn.text")); // NOI18N
account_btn.setBorderPainted(false);
account_btn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
account_btn.setName("account_btn"); // NOI18N
account_btn.setOpaque(true);
add(account_btn);

结果: enter image description here

也尝试过设置 setOpaque(true)。但是您可以看到 account_btn 的结果,即“会计”。 setOpaque 似乎没有效果。

任何想法。

解决方案:

设置L&F

    private void initLookandFeel() {
try {
System.out.println("DEFAULT Look & Feel = " + UIManager.getLookAndFeelDefaults().toString());
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
javax.swing.SwingUtilities.updateComponentTreeUI(this.mainPanel);
System.out.println("Look & Feel = " + UIManager.getLookAndFeel().toString());
} catch(Exception e) { ..... }
}

我在 initComponents() 之后调用 initLookandFeel() 并更新我的 mainPanel。还需要在初始阶段更新我动态添加的面板,然后无需再进行任何设置。

最佳答案

Red Buttons

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

class ColoredButtons {

ColoredButtons() {
JPanel gui = new JPanel(new GridLayout(1,0,5,5));

JButton one = new JButton("One");
one.setBackground(Color.RED);
JButton two = new JButton("Two");
two.setBackground(Color.RED);

gui.add(one);
gui.add(two);

JOptionPane.showMessageDialog(null, gui);
}

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

有我的SSCCE。按钮是红色的。 PLAF 是金属的。

这让我回想起:您的 SSCCE 在哪里?您使用的是什么 PLAF?

关于java - Swing : Setting JButton's background,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8194460/

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