Ich versuche, ein transparentes Fenster mit Java auf OSX zu erstellen und fügen Sie ein JLabel
hinzu.Re-paint auf transluzenten Rahmen/Panel/Komponente.
Diese JLabel
ändert seinen Text jede Sekunde ....
jedoch die Komponente nicht gut ist neu zu streichen.
Wie kann ich dieses Problem lösen?
Ich habe die thesearticles gefunden, aber ich kann nicht herausfinden, wie man es löst.
Wenn möglich, bitte auf den Befestigungs Quellcode einfügen, hier ist meins:
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);
}
}
Versuchen Sie auch, den Hintergrund im Timer-Code zurückzusetzen oder Repaint auf dem gesamten Panel aufzurufen. Ich weiß, dass der Hintergrund einfach nicht weiß, dass es neu gestrichen werden muss. – jjnguy
Wenn das behoben wird, werde ich eine Antwort geben, aber es ist nur eine Vermutung. – jjnguy
+1 für das SO-Logo. :-) – trashgod