Re: Combobox how to disable edit but allow select
Michael Rauscher wrote:
John_Woo schrieb:
dnasmars@gmail.com wrote:
try this
public class MyComboBox extends JComboBox implements ActionListener {
public MyComboBox() {
addItem("a");
>> addItem("b");
addItem("c");
setEditable( false );
addActionListener( this); //line A
}
public void actionPerformed(ActionEvent e) {
System.out.println(" this is ugly ");
this.setForeground(Color.white);
}
}
I hope this helps
That's it! Thank you.
Color.black is better.
I don't know what you're doing but I know it must be something strange ;)
Michael's example (using an static inner class ) is fine, just didn't
understand why for standalone class, we have to explixitly set the
foreend color.
You do *not* need to. It doesn't make any difference if one uses a
static inner class or a top level class:
import java.awt.event.*;
import javax.swing.*;
class MyComboBox extends JComboBox implements ActionListener {
public void actionPerformed( ActionEvent e ) {
System.out.println( "Action" );
}
public MyComboBox() {
addItem("a");
addItem("b");
addItem("c");
setEditable( false );
addActionListener( this );
}
}
public class Test {
public static final void main( String args[] ) throws Exception {
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
frame.setContentPane( new MyComboBox() );
frame.pack();
frame.setVisible( true );
}
}
Thanks Michael,
if MyComboBox is as following (without overwrite actionPerformed
method)
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class Test {
public static final void main( String args[] ) throws Exception {
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
MyComboBox my = new MyComboBox();
frame.setContentPane( my );
frame.pack();
frame.setVisible( true );
}
}
class MyComboBox extends JComboBox implements ActionListener
{
MyComboBox()
{
addItem("a");
addItem("b");
addItem("c");
setEditable( false );
addActionListener( this); //line A
}
}
then once selecting an item, the field always displays blank. I still
have no idea about it.
John