我想删除创建JCheckbox时自动出现的灰色背景。 JCheckbox所在的面板是setOpaque(false)。我已尝试将setOpaque(false)与JCheckboxes一起使用,但它不起作用。我想让JCheckbox直接出现在黑色背景上,就像在图像中一样。
黑色背景上的JCheckboxes灰色背景:
我的代码如下。使用arraylist从数据库中检索数据并将其显示为JCheckboxes。然后将ModulePanel添加到JFrame。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="tab1" class="tab">
Tab 1
</div>
<div id="content1" class="content">
1
</div>
<div id="tab2" class="tab">
Tab 2
</div>
<div id="content2" class="content">
2
</div>
<div id="tab3" class="tab">
Tab 3
</div>
<div id="content3" class="content">
3
</div>
答案 0 :(得分:3)
首先,变量名不应以大写字母开头。从本教科书或教程中的示例中学习。
在复选框上使用setOpaque(false)
可以正常使用。
我想让JCheckbox直接出现在黑色背景上,就像在图像中一样。
看起来您正在添加一个面板,其中包含显示图像的组件的复选框。
我猜测问题是您还需要在包含复选框的面板上使用setOpaque(false)
。
答案 1 :(得分:1)
我尝试将setOpaque(false)与JCheckbox一起使用,但它不起作用
嗯,这是正确的做法。
例如,尝试将框所在的面板背景设置为其他颜色并调用checkBox.setOpaque(false);
例如:
import java.awt.Color;
import javax.swing.BoxLayout;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class CheckBoxNoBackground {
private JFrame frame;
private JPanel pane;
private JCheckBox box1;
private JCheckBox box2;
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new CheckBoxNoBackground().createAndShowGui());
}
public void createAndShowGui() {
frame = new JFrame(getClass().getSimpleName());
pane = new JPanel();
pane.setLayout(new BoxLayout(pane, BoxLayout.PAGE_AXIS));
box1 = new JCheckBox("I'm a check box");
box2 = new JCheckBox("I'm also a check box");
box1.setOpaque(false);
pane.setBackground(Color.CYAN);
pane.add(box1);
pane.add(box2);
frame.add(pane);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
JCheckbox所在的面板是setOpaque(false)。
如果你这样做,你会看到JFrame
内容窗格的背景(灰色)
如果我添加这一行:
pane.setOpaque(false);
我明白了:
但是,如果您需要有关代码的更多帮助,请在评论中发布有效的MCVE,如前所述。