www.pudn.com > tame.rar > SmallCellComboExample.java


/* (swing1.1) */
package tame.examples;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.DefaultCellEditor;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.event.ListDataEvent;
import javax.swing.table.DefaultTableModel;

import tame.combobox.SteppedComboBox;

/**
@author Nobuo Tamemasa
@version 1.0  3/06/99
*/
public class SmallCellComboExample extends JFrame {

  public SmallCellComboExample() {
    super( "SmallCell Combo Example" );

    DefaultTableModel dm = new DefaultTableModel(4,10) {
      public void setValueAt(Object obj, int row, int col) {
        if (obj != null) {
          String str;
          if (obj instanceof String) {
            str = ((String)obj).substring(0,2);
          } else {
            str = obj.toString();
          }
          super.setValueAt(str, row, col);
        }
      }
    };
    JTable table = new JTable( dm );

    String[] str = {
      "010 - To Time",
      "020 - Vacation",
      "030 - Feel Bad"
    };

    SteppedComboBox combo = new SteppedComboBox(str) {
      public void contentsChanged(ListDataEvent e) {
        selectedItemReminder = null;
        super.contentsChanged(e);
      }
    };

    Dimension d = combo.getPreferredSize();
    combo.setPopupWidth(d.width);

    DefaultCellEditor editor = new DefaultCellEditor(combo);
    table.setDefaultEditor(Object.class, editor);

    JScrollPane scroll = new JScrollPane( table );
    getContentPane().add(scroll, BorderLayout.CENTER);
  }

  public static void main(String[] args) {
    SmallCellComboExample frame = new SmallCellComboExample();
    frame.addWindowListener( new WindowAdapter() {
      public void windowClosing( WindowEvent e ) {
	System.exit(0);
      }
    });
    frame.setSize( 300, 120 );
    frame.setVisible(true);
  }
}