Creating a JComboBox in JTable with a drop down menu always visible

In Swing, you can create a JComboBox in JTable, as this tutorial from Oracle shows . They have a beautiful picture that shows this in action:

enter image description here

However, what cannot be shown is that if you did not click on a cell, the arrows of the drop-down list are not visible and look like a regular text label, as shown below:

enter image description here

, , , - . , , , , , , . , "" "". - , - , , .

, Swing?

EDIT: , , "" , , . , , , .

+4
2

, "renderer" "edit" JTable. Sport .

, - ...

Example

(IMHO)

, , , Sport

public void setUpSportColumn(JTable table,
                TableColumn sportColumn) {
    //Set up the editor for the sport cells.
    JComboBox comboBox = new JComboBox();
    DefaultComboBoxModel model = new DefaultComboBoxModel();
    model.addElement("Snowboarding");
    model.addElement("Rowing");
    model.addElement("Knitting");
    model.addElement("Speed reading");
    model.addElement("Pool");
    model.addElement("None of the above");
    comboBox.setModel(model);
    sportColumn.setCellEditor(new DefaultCellEditor(comboBox));

    model = new DefaultComboBoxModel();
    model.addElement("Snowboarding");
    model.addElement("Rowing");
    model.addElement("Knitting");
    model.addElement("Speed reading");
    model.addElement("Pool");
    model.addElement("None of the above");
    //Set up tool tips for the sport cells.
    ComboBoxTableCellRenderer renderer
                    = new ComboBoxTableCellRenderer();
    renderer.setModel(model);
    sportColumn.setCellRenderer(renderer);
}

...

public class ComboBoxTableCellRenderer extends JComboBox implements TableCellRenderer {

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        setSelectedItem(value);
        return this;
    }

}
+4

, : combobox ?

, , GUI . , Swing , , , .

, ( Windows XP):

: enter image description here

:

enter image description here

:

enter image description here

0

Source: https://habr.com/ru/post/1546456/


All Articles