Вот чего я хочу добиться:
Что я пробовал:
jTextArea.setOpaque(false);
это делаетJTextArea
прозрачным.jScrollPane.setOpaque(false);
это не дает никакого эффектазатем я попробовал это, которое скрывает как
JScrollPane
, так иJTextArea
.jScrollPane.getViewPort().setOpaque(false); jScrollPane.setOpaque(false);
затем я попробовал это, которое скрывает как
JScrollPane
, так иJTextArea
.jScrollPane.setViewPort(new MyViewPort()); class MyViewPort() extends JViewPort{ public MyViewPort(){ setOpaque(false); } }
Чего я хочу добиться, так это JScrollPane
фон прозрачный и прозрачный JTextArea
, где я должен добавить текст и видимый JScrollPane
.
Обновление: мне понравилось, я могу добавить текст в textArea, но jscrollPane не прозрачен:
public class TransparentBackground extends javax.swing.JFrame {
public TransparentBackground() {
jScrollPane = new javax.swing.JScrollPane();
jTextArea = new javax.swing.JTextArea();
lblBackground = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jTextArea.setColumns(20);
jTextArea.setRows(5);
jScrollPane.setViewportView(jTextArea);
jScrollPane.getViewport().setOpaque(false);
jScrollPane.setOpaque(false);
jTextArea.setOpaque(false);
getContentPane().add(jScrollPane, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 40, 580, 300));
lblBackground.setIcon(new javax.swing.ImageIcon(getClass().getResource("/bg.png"))); // NOI18N
getContentPane().add(lblBackground, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 680, 390));
pack();
}
И когда я использую
jScrollPane.setViewPort(new MyViewPort());
class MyViewPort() extends JViewPort{
public MyViewPort(){
setOpaque(false);
}
}
И textArea, и JScrollPane исчезают (прозрачные), но нуждаются в прозрачном и редактируемом jTextArea или могут добавлять в него текст.
Когда я устанавливаю собственный порт просмотра, результат выглядит так
I can not add text in jTextArea
- изменение свойства непрозрачности компонента не влияет на возможность добавления текста в компонент. У вас есть проблемы с вашим кодом, поэтому вам нужно опубликовать SSCCE.please check example.
- код, который вы разместили, использует сторонние API и не компилируется. Следовательно, это НЕ SSCCE. Опубликуйте демонстрацию, в которой используются API только из базового JDK. Нет необходимости использовать сторонние API, чтобы сделать компонент непрозрачным. Опубликуйте правильный SSCCE, чтобы мы могли скомпилировать выполнение, если вам нужна дополнительная помощь. - person camickr   schedule 30.05.2016