1

我对 JTextArea 有疑问。我想用 setOpaque(false) 使 JTextArea 不可见,但它不起作用。这是我的代码:


public class NewClass extends JFrame {

    private JPanel panel;
    private JTextArea tA;
    private JScrollPane scrollPane;

    public NewClass() {

        this.setTitle("Test");

        initJpanel();

        initTextArea();

        this.setSize(800, 640);

        this.setLocationRelativeTo(null);

        this.setResizable(false);

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        this.setContentPane(panel);

        this.setVisible(true);

    }

    public static void main(String[] args) {
        new NewClass();
    }

    private void initJpanel() {
        panel = new JPanel();
        panel.setLayout(null);
        panel.setDoubleBuffered(true);
        panel.setSize(800, 640);
        panel.setLocation(0, 0);
        panel.setBackground(Color.red);
    }

    private void initTextArea() {

        tA= new JTextArea();
        tA.setOpaque(false);
        tA.setLineWrap(true);
        tA.setWrapStyleWord(true);
        tA.setSize(400, 100);
        tA.setLocation(0, 0);
        tA.setOpaque(false);
        //tA.setBackground(new Color(0, 0, 0, 90));
        scrollPane = new JScrollPane(tA);
        scrollPane.setSize(400, 100);
        scrollPane.setLocation(0, 0);
        scrollPane.setOpaque(false);
        //scrollPane.setBackground(new Color(0, 0, 0, 90));
        scrollPane.setVisible(true);

        panel.add(scrollPane);
    }
}

我尝试了这段代码但不起作用。JTextArea 不会变得透明。

4

1 回答 1

4

您还必须设置 scrollPane 的视口不透明度:

scrollPane.getViewport().setOpaque(false);
于 2013-09-09T16:01:00.170 回答