-
Bug
-
Resolution: Won't Fix
-
P3
-
6u10
-
generic
-
generic
The synth table renderer inset is changed in 6u10 compare to any previous release.
To reproduce:
Run the followin code in 6u10 and other release earlier than 6u10, say 6u6. Observe that the insets results are different. 6u10 has 0 and 6u6 has 1.
import javax.swing.plaf.synth.*;
import javax.swing.*;
import java.awt.*;
import java.io.*;
import javax.swing.table.*;
public class SynthTableTest extends JFrame
{
private static String synthXml = "<synth>" +
" <style id=\"table\">" +
" <state>" +
" <color type=\"BACKGROUND\" value=\"#FFFFFF\" />" +
" <color type=\"FOREGROUND\" value=\"#000000\" />" +
" </state>" +
" <state value=\"SELECTED\">" +
" <color type=\"TEXT_BACKGROUND\" value=\"#0070C0\"/>" +
" <color type=\"TEXT_FOREGROUND\" value=\"#FFFFFF\"/>" +
" </state>" +
" </style>" +
" <bind style=\"table\" type=\"region\" key=\"Table\"/>" +
"</synth>";
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable(){
public void run()
{
try
{
new SynthTableTest();
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
}
public SynthTableTest() throws Exception
{
InputStream is = new ByteArrayInputStream(synthXml.getBytes("UTF8"));
SynthLookAndFeel laf = new SynthLookAndFeel();
laf.load(is, SynthTableTest.class);
UIManager.setLookAndFeel(laf);
String[][] data = new String[][]{{"Val11","Val12"},{"Val21","Val22"}};
String[] columns = new String[]{"Column A", "Column B"};
JTable table = new JTable(data, columns);
add(new JScrollPane(table));
table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer(){
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
JLabel l = (JLabel)super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
l.setText(getInsets().toString());
return l;
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(new Dimension(600, 300));
setLocationRelativeTo(null);
setVisible(true);
}
}
To reproduce:
Run the followin code in 6u10 and other release earlier than 6u10, say 6u6. Observe that the insets results are different. 6u10 has 0 and 6u6 has 1.
import javax.swing.plaf.synth.*;
import javax.swing.*;
import java.awt.*;
import java.io.*;
import javax.swing.table.*;
public class SynthTableTest extends JFrame
{
private static String synthXml = "<synth>" +
" <style id=\"table\">" +
" <state>" +
" <color type=\"BACKGROUND\" value=\"#FFFFFF\" />" +
" <color type=\"FOREGROUND\" value=\"#000000\" />" +
" </state>" +
" <state value=\"SELECTED\">" +
" <color type=\"TEXT_BACKGROUND\" value=\"#0070C0\"/>" +
" <color type=\"TEXT_FOREGROUND\" value=\"#FFFFFF\"/>" +
" </state>" +
" </style>" +
" <bind style=\"table\" type=\"region\" key=\"Table\"/>" +
"</synth>";
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable(){
public void run()
{
try
{
new SynthTableTest();
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
}
public SynthTableTest() throws Exception
{
InputStream is = new ByteArrayInputStream(synthXml.getBytes("UTF8"));
SynthLookAndFeel laf = new SynthLookAndFeel();
laf.load(is, SynthTableTest.class);
UIManager.setLookAndFeel(laf);
String[][] data = new String[][]{{"Val11","Val12"},{"Val21","Val22"}};
String[] columns = new String[]{"Column A", "Column B"};
JTable table = new JTable(data, columns);
add(new JScrollPane(table));
table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer(){
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
JLabel l = (JLabel)super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
l.setText(getInsets().toString());
return l;
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(new Dimension(600, 300));
setLocationRelativeTo(null);
setVisible(true);
}
}