我遇到了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不会变得透明。
答案 0 :(得分:4)
您还必须设置scrollPane的视口不透明度:
scrollPane.getViewport().setOpaque(false);