Estoy tratando de crear una ventana translúcida con Java en OSX y agregarle un JLabel
.Vuelva a pintar en el marco/panel/componente translúcido.
Este JLabel
cambia su texto cada segundo ....
Sin embargo, el componente no está bien repintado.
¿Cómo puedo resolver este problema?
He encontrado el thesearticles, pero no puedo encontrar la manera de solucionarlo.
Si es posible, por favor pegue el código fuente de fijación, aquí está la mía:
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);
}
}
Intente restablecer el fondo en el código del temporizador también, o llame a repintado en todo el panel. Creo que el fondo simplemente no sabe que necesita ser repintado. – jjnguy
Si eso lo soluciona, lo convertiré en una respuesta, pero es solo una suposición en este momento. – jjnguy
+1 por incluir el logotipo SO. :-) – trashgod