📄 bindingdemo3.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 + -