java - setOpaque() 方法

标签 java

我想知道 setOpaque() 方法的作用...

这是小程序的一部分:

    public class Buttons extends JFrame implements ActionListener
    {

     private JButton button;
     private JLabel label;
     private JTextArea text;
     private String t;
     public Buttons()
     {
      super("TESTING");
      label = new JLabel("Hello!!!!");
      button = new JButton("Color Change");
      text = new JTextArea("Test");
      setLayout(new FlowLayout());
      label.setOpaque(true);
      add(button);
      add(label);
      add(text);

            LabelHandler labelHandler = new LabelHandler();

      button.addActionListener(this);
            label.addMouseListener(labelHandler);

      setSize(300,200);
      setVisible(true);
     }

     public void actionPerformed(ActionEvent e)
     {
      if (e.getSource()==button)
      {
       label.setBackground(Color.red);
      }
      if (e.getSource()==text)
      {
       if (t == "\n")
       {
        setText(t);
        label.getText();
       }
      }
     }



    class LabelHandler extends MouseAdapter
    {
     public void mouseEntered(MouseEvent e)
     {
  label.setBackground(Color.GREEN);
     }
 }

如果没有 setOpaque,它就不会绘制标签。为什么? 提前致谢。

最佳答案

Swing ComponentUI 使用不透明标志来测试是否应该绘制背景。如果您设置了背景颜色,但未能setOpaque(true),您将看不到背景颜色。

关于java - setOpaque() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3144207/

相关文章:

java - 无序(或哈希)映射中的迭代器

java - 分片环境下如何管理DB连接池?

java - 如何使用 Jbutton 添加多个按钮

java - keystore 加载

java - 我怎样才能在html表格中显示动态值

java - Cucumber-jvm线程安全吗?

java - 应用程序未在 64 位计算机上运行

java - 检查数据库中是否有空记录

java - 关于Spring DM、OSGi和web应用的问题

java - Android:将数据从 ViewPager2 和 TabLayout 管理的 fragment 发送到包含的 Activity