Próbuję utworzyć półprzezroczyste okno z Javą na OSX i dodać do niego JLabel
.Ponownie malować na półprzezroczystej ramie/panelu/komponencie.
Ten JLabel
zmienia swój tekst co drugi ....
Jednak składnik nie jest malowanie dobrze.
Jak mogę rozwiązać ten problem?
Znalazłem thesearticles, ale nie mogę wymyślić, jak go rozwiązać.
Jeśli to możliwe, należy wkleić kod źródłowy mocowanie, oto moje:
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.Font;
import java.util.Timer;
import java.util.TimerTask;
public class Translucent {
public static void main(String [] args) {
JFrame frame = new JFrame();
frame.setBackground(new Color(0.0f,0.0f,0.0f,0.3f));
final JLabel label = new JLabel("Hola");
label.setFont(new Font(label.getFont().getFamily(), Font.PLAIN, 46));
label.setForeground(Color.white);
frame.add(label);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
Timer timer = new Timer();
timer.schedule(new TimerTask(){
int i = 0;
public void run() {
label.setText("Hola "+ i++);
}
}, 0, 1000);
}
}
Spróbuj również zresetować tło w kodzie timera lub wywołać odświeżenie na całym panelu. Wiem, że tło nie wie, że musi zostać przemalowane. – jjnguy
Jeśli to naprawi, zrobię to jako odpowiedź, ale teraz to tylko przypuszczenie. – jjnguy
+1 za dołączenie logo SO. :-) – trashgod