[Fwd: Problem with AWT/Swing code]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 ---

[Index of Archives]     [Linux Kernel]     [Linux Cryptography]     [Fedora]     [Fedora Directory]     [Red Hat Development]

  Powered by Linux