1. Pre Java 1.4.2_09 being the issue.
Nope, I have seen it on 1.4.2_09, and ever after. Can not be sure for
previous versions though.
2. Custom components painting being the issue.
Nope, as the effect is there even when using standard components.
3. Can be fixed by setting the first container behind the label to
being opaque.
Nope, doesn't fix the issue.
I will look into finding something out with Quartz Debugger later on.
Who knows what that brings.
I am sending a test JFrame. I achieved the effect when resizing it.
Less frequent due to the frame not being overly complex, and thereby
less slow in repainting. However, I can get it every time if I slowly
resize. Note please that all are standard components, and virtually
no changes have been made to them, they were just organized into a
layout.
One other thing what comes up is that it comes more often since I
started using a CoreDuo iMac for dev. I am not sure if it is just the
speed or another core what bring it out more often. Swing painting is
performed only by the Event Dispatch Thread, right??? No
multithreading directly involved?
Thanks to everybody for the input,
Flor
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
/*
* Created by JFormDesigner on Wed May 31 10:27:48 CEST 2006
*/
private void initComponents() {
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-
BEGIN:initComponents
panel1 = new JPanel();
label1 = new JLabel();
radioButton4 = new JRadioButton();
radioButton3 = new JRadioButton();
checkBox1 = new JCheckBox();
radioButton1 = new JRadioButton();
radioButton2 = new JRadioButton();
panel2 = new JPanel();
button1 = new JButton();
button2 = new JButton();
scrollPane3 = new JScrollPane();
list1 = new JList();
scrollPane2 = new JScrollPane();
tree2 = new JTree();
scrollPane1 = new JScrollPane();
tree1 = new JTree();
textField1 = new JTextField();
textField2 = new JTextField();
textField3 = new JTextField();
textField4 = new JTextField();
//======== this ========
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());