Forwarding to GNU Classpath; this isn't gcj-specific.
Andrew.
--- Begin Message ---
Hi everyone,
I'm doing some testing with AWT/Swing applications compiled with gcj 4.4 (which is using classpath 0.97.2).
I'm having some troubles with the following code; it does not show
the JComponent inside the JFrame (I've tried both on x86 and arm).
This code runs fine if compiled with OpenJDK, so I guess that this issue is more related to gcj rather then classpath.
Any thoughts or ideas?
Thank you
Francesco
Code:
import java.awt.BorderLayout;
import javax.swing.DefaultListModel;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.SwingUtilities;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class MainPanel extends JPanel implements ListSelectionListener {
static final int NUM_ROWS = 500;
JList list;
JLabel lblSelection;
DefaultListModel listModel;
int startRow = 0;
long startTime = 0;
Runnable r = new Runnable() {
public void run() {
long deltaTime = System.currentTimeMillis() - startTime;
for (int i=startRow; i<NUM_ROWS; i++) {
listModel.set(i, ""+deltaTime);
}
startRow++;
startTime = System.currentTimeMillis();
SwingUtilities.invokeLater(r);
}
};
public MainPanel() {
super(new BorderLayout());
listModel = new DefaultListModel();
for (int i=0; i<NUM_ROWS; i++) {
listModel.addElement("Element "+i);
}
//Create the list and put it in a scroll pane.
list = new JList(listModel);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setSelectedIndex(0);
list.addListSelectionListener(this);
list.setVisibleRowCount(5);
JScrollPane listScrollPane = new JScrollPane(list);
lblSelection = new JLabel(" ");
add(lblSelection, BorderLayout.SOUTH);
add(listScrollPane, BorderLayout.CENTER);
// t.start();
startTime = System.currentTimeMillis();
SwingUtilities.invokeLater(r);
}
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting() == false) {
if (list.getSelectedIndex() == -1) {
//No selection
lblSelection.setText("");
} else {
//Selection
lblSelection.setText("Item selected: "+list.getSelectedIndex());
}
}
}
public static void main(String[] args) {
//Create and set up the window.
JFrame frame = new JFrame("TestUI #1");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
JComponent newContentPane = new MainPanel();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//Display the window.
frame.setBounds(10, 10, 500, 400);
frame.setVisible(true);
}
}
--- End Message ---