-
Bug
-
Resolution: Fixed
-
P4
-
6
-
b96
-
b15
-
x86
-
windows_xp
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2150273 | 6u4 | Mikhail Lapshin | P4 | Resolved | Fixed | b01 |
FULL PRODUCT VERSION :
1.6.0_01
ADDITIONAL OS VERSION INFORMATION :
Linux (Suse 10.1), Windows XP
A DESCRIPTION OF THE PROBLEM :
Using java 1.6:
- A JComboBox as a CellEditor in a JTable
- The JComboBox is editable
- The items in the ComboBox are not Strings
I can't select an entry from the list using the cursor keys and return (the mouse works).
This worked in java 1.4 and 1.5 .
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Start the test program. Click into the Table. Use the cursor keys to select "2". Hit enter.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The "2" should be selected.
ACTUAL -
The "1" is selected.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
package test;
import java.util.Vector;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class Test extends JFrame {
public Test() {
BoxItem item1 = new BoxItem("1");
BoxItem item2 = new BoxItem("2");
DefaultTableModel model = new DefaultTableModel(new Object[][] {{item1}}, new String[] {"test"});
JTable table = new JTable(model);
Vector v = new Vector();
v.add(item1);
v.add(item2);
JComboBox box = new JComboBox(v);
box.setEditable(true);
table.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(box));
getContentPane().add(box);
pack();
}
static class BoxItem {
String s = null;
public BoxItem(String s) {
this.s = s;
}
public String toString() {
return s;
}
}
public static void main(String[] args) {
Test t = new Test();
t.setVisible(true);
}
}
---------- END SOURCE ----------
It is copied from the description of 6557820:
FULL PRODUCT VERSION :
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [Version 5.1.2600]
Microsoft Windows 2000 [Version 5.00.2195]
A DESCRIPTION OF THE PROBLEM :
In an editable combo box inside a JTable, when using the keyboard, presing enter or the space bar doesn't select the highlighted item. This worked with JDK 1.5.0.08.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Select the editable combo box
click esc to open the drop down list
using the arrow keys highlith one of the items
press enter (or space)
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The highlighted item should be selected
ACTUAL -
with enter the list is closed and nothing is selected, with the spacebar nothing happens.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import javax.swing.DefaultCellEditor;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
/*
* Test.java
*
* Created on May 3, 2007, 1:29 PM
*/
/**
*
* @author helm-youngs
*/
public class Test extends javax.swing.JFrame {
/** Creates new form Test */
public Test() {
initComponents();
getContentPane().add(scrollPane);
pack();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
editableComboBox = new javax.swing.JComboBox();
scrollPane = new javax.swing.JScrollPane();
testTable = new javax.swing.JTable();
editableComboBox.setEditable(true);
editableComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Test");
testTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
TableColumnModel columnModel = testTable.getColumnModel();
TableColumn tableColumn = columnModel.getColumn(0);
tableColumn.setCellEditor(new DefaultCellEditor(editableComboBox));
scrollPane.setViewportView(testTable);
}//GEN-END:initComponents
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Test().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JComboBox editableComboBox;
private javax.swing.JScrollPane scrollPane;
private javax.swing.JTable testTable;
// End of variables declaration//GEN-END:variables
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
using alt+up or down arrow selects the highlited item.
Release Regression From : 5.0u11
The above release value was the last known release where this
bug was not reproducible. Since then there has been a regression.
1.6.0_01
ADDITIONAL OS VERSION INFORMATION :
Linux (Suse 10.1), Windows XP
A DESCRIPTION OF THE PROBLEM :
Using java 1.6:
- A JComboBox as a CellEditor in a JTable
- The JComboBox is editable
- The items in the ComboBox are not Strings
I can't select an entry from the list using the cursor keys and return (the mouse works).
This worked in java 1.4 and 1.5 .
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Start the test program. Click into the Table. Use the cursor keys to select "2". Hit enter.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The "2" should be selected.
ACTUAL -
The "1" is selected.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
package test;
import java.util.Vector;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class Test extends JFrame {
public Test() {
BoxItem item1 = new BoxItem("1");
BoxItem item2 = new BoxItem("2");
DefaultTableModel model = new DefaultTableModel(new Object[][] {{item1}}, new String[] {"test"});
JTable table = new JTable(model);
Vector v = new Vector();
v.add(item1);
v.add(item2);
JComboBox box = new JComboBox(v);
box.setEditable(true);
table.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(box));
getContentPane().add(box);
pack();
}
static class BoxItem {
String s = null;
public BoxItem(String s) {
this.s = s;
}
public String toString() {
return s;
}
}
public static void main(String[] args) {
Test t = new Test();
t.setVisible(true);
}
}
---------- END SOURCE ----------
It is copied from the description of 6557820:
FULL PRODUCT VERSION :
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [Version 5.1.2600]
Microsoft Windows 2000 [Version 5.00.2195]
A DESCRIPTION OF THE PROBLEM :
In an editable combo box inside a JTable, when using the keyboard, presing enter or the space bar doesn't select the highlighted item. This worked with JDK 1.5.0.08.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Select the editable combo box
click esc to open the drop down list
using the arrow keys highlith one of the items
press enter (or space)
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The highlighted item should be selected
ACTUAL -
with enter the list is closed and nothing is selected, with the spacebar nothing happens.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import javax.swing.DefaultCellEditor;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
/*
* Test.java
*
* Created on May 3, 2007, 1:29 PM
*/
/**
*
* @author helm-youngs
*/
public class Test extends javax.swing.JFrame {
/** Creates new form Test */
public Test() {
initComponents();
getContentPane().add(scrollPane);
pack();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
editableComboBox = new javax.swing.JComboBox();
scrollPane = new javax.swing.JScrollPane();
testTable = new javax.swing.JTable();
editableComboBox.setEditable(true);
editableComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Test");
testTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
TableColumnModel columnModel = testTable.getColumnModel();
TableColumn tableColumn = columnModel.getColumn(0);
tableColumn.setCellEditor(new DefaultCellEditor(editableComboBox));
scrollPane.setViewportView(testTable);
}//GEN-END:initComponents
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Test().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JComboBox editableComboBox;
private javax.swing.JScrollPane scrollPane;
private javax.swing.JTable testTable;
// End of variables declaration//GEN-END:variables
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
using alt+up or down arrow selects the highlited item.
Release Regression From : 5.0u11
The above release value was the last known release where this
bug was not reproducible. Since then there has been a regression.
- backported by
-
JDK-2150273 editable JComboBox: Can't select with keys inside JTable
-
- Resolved
-
- duplicates
-
JDK-6557820 Editable JComboBox inside JTable, keyboard selection doesn't work with JDK 1.6.0
-
- Closed
-
- relates to
-
JDK-4165987 Applications need lightweight keyboard navigation of combo boxes
-
- Closed
-
-
JDK-6428549 REGRESSION: Text entered in the Editable JComboBox got cleared when the Enter Key is pressed
-
- Closed
-
-
JDK-6550847 Action events not firing in JCombox's selected item
-
- Closed
-