⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bindingdemo3.java

📁 java 完全探索的随书源码
💻 JAVA
字号:
// BindingDemo3.java 
                          
import javax.swing.*; 
import javax.swing.plaf.*; 
                          
import java.awt.*; 
import java.awt.event.*; 
                          
import java.util.*; 
                          
class BindingDemo3 extends JFrame 
{ 
   JComboBox jcb; 
                          
   BindingDemo3 (String title) 
   { 
      super (title); 
                          
      addWindowListener (new WindowAdapter () 
                         { 
                             public void windowClosing (WindowEvent e) 
                             { 
                                System.exit (0); 
                             } 
                         }); 
                          
      JPanel jp = new JPanel (); 
                          
      Vector v = new Vector (); 
      v.add ("Camaro"); 
      v.add ("Corvette"); 
      v.add ("Firebird"); 
      v.add ("TransAM"); 
      v.add ("Porsche"); 
      v.add ("Lamborgini");

      jcb = new JComboBox (v); 
      jcb.setEditable (true);

      jcb.getActionMap ().put ("selectNext", new DownAction ());

      KeyStroke ks = KeyStroke.getKeyStroke (KeyEvent.VK_DELETE,
                                             Event.CTRL_MASK);

      jcb.getInputMap (JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
         .put (ks, "rubOut");
      jcb.getActionMap ().put ("rubOut", new RubOutAction ());

      jp.setPreferredSize (new Dimension (200, 35));
      jp.add (jcb); 
      getContentPane ().add (jp);

      pack ();                          
      setVisible (true); 
   } 
                          
   public static void main (String [] args) 
   { 
      new BindingDemo3 ("Binding Demo3"); 
   } 
} 
                          
class DownAction extends AbstractAction 
{ 
   public void actionPerformed (ActionEvent e) 
   {
      JComboBox jcb = (JComboBox) e.getSource (); 
                          
      ComboBoxUI ui = jcb.getUI (); 
                          
      if (ui.isPopupVisible (jcb)) 
      { 
          int i = jcb.getSelectedIndex (); 
          if (i < jcb.getModel ().getSize () - 1) 
          { 
              jcb.setSelectedIndex (i + 1); 
              jcb.repaint (); 
          } 
      } 
      else 
      { 
          int nItems = jcb.getItemCount (); 
                         
          ComboBoxEditor cbe = jcb.getEditor (); 
                          
          String st; // Search text 
                          
          st = ((String) cbe.getItem ()).toUpperCase (); 
                          
          for (int i = 0; i < nItems; i++) 
          { 
               String item = ((String) jcb.getItemAt (i)).toUpperCase (); 
                          
               if (item.startsWith (st)) 
               { 
                   jcb.setSelectedIndex (i); 
                   break; 
               } 
          } 
                          
          ui.setPopupVisible (jcb, true); 
      } 
   } 
}

class RubOutAction extends AbstractAction 
{ 
   public void actionPerformed (ActionEvent e) 
   {
      JComboBox jcb = (JComboBox) e.getSource (); 
                          
      ComboBoxEditor cbe = jcb.getEditor (); 

      cbe.setItem ("");
   } 
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -