Zoals sommige misschien al door hebben, ben ik druk bezig Swing te snappen
. Ik kom er regelmatig niet direct uit, maar dan lukt het wel aan de hand van de tutorial en andere examples.
Deze keer heb Ik mezelf suf gestaard op examples en de Swing tutorials, maar ik kan maar niet vinden waar het aan ligt.
Mijn probleem in het kort:
Ik heb een klasse gemaakt welke JComboBox overerft en TableCellRenderer implementeerd. In deze klasse zet ik een aantal waarden. Tevens heb ik de methode getTableCellRendererComponent overridden en deze set de combobox op de juiste index aan de hand van de value.
Nu komt het probleem. Wanneer ik de renderer (JComboBox dus) toevoeg aan de TableColumn van mijn (welke natuurlijk vanuit mijn JTable komt) Zie ik wel de gelesecteerde waarde, maar werkt de dropdown functie van de JComboBox niet meer (als ik er op klik, gebeurt er niets. De juiste waarde zit er wel in, dit heb ik gezien in mijn Debugger (NetBeans))...
Dus mijn vraag is.. wat doe ik fout
owja.. even wat code, aangezien ik niet altijd de duidelijkste ben..
en de code welke ik gebruik om mijn data in de JTable te zetten:
p.s. Er worden geen exceptions gethrowed ofzo... Alles werkt perfect (data is er, juiste item wordt geselecteerd), maar er komt geen lijstje naar beneden als ik op het pijltje klik.
Deze keer heb Ik mezelf suf gestaard op examples en de Swing tutorials, maar ik kan maar niet vinden waar het aan ligt.
Mijn probleem in het kort:
Ik heb een klasse gemaakt welke JComboBox overerft en TableCellRenderer implementeerd. In deze klasse zet ik een aantal waarden. Tevens heb ik de methode getTableCellRendererComponent overridden en deze set de combobox op de juiste index aan de hand van de value.
Nu komt het probleem. Wanneer ik de renderer (JComboBox dus) toevoeg aan de TableColumn van mijn (welke natuurlijk vanuit mijn JTable komt) Zie ik wel de gelesecteerde waarde, maar werkt de dropdown functie van de JComboBox niet meer (als ik er op klik, gebeurt er niets. De juiste waarde zit er wel in, dit heb ik gezien in mijn Debugger (NetBeans))...
Dus mijn vraag is.. wat doe ik fout
owja.. even wat code, aangezien ik niet altijd de duidelijkste ben..
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| public class WorkDataRenderer extends JComboBox implements TableCellRenderer {
/** Creates a new instance of WorkDataRenderer */
public WorkDataRenderer() {
super();
}
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
if (isSelected) {
setForeground(table.getSelectionForeground());
super.setBackground(table.getSelectionBackground());
} else {
setForeground(table.getForeground());
setBackground(table.getBackground());
}
setSelectedItem(value);
return this;
}
} |
en de code welke ik gebruik om mijn data in de JTable te zetten:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| TableColumnModel tcm = workDataTable.getColumnModel();
TableColumn tc = tcm.getColumn(WorkDataTableModel.LOCATION);
WorkDataRenderer workDataRenderer = new WorkDataRenderer();
try {
ILocationController controller = LocationFactory.getLocationController();
List locations = controller.retreiveLocations();
Iterator iLoc = locations.iterator();
while (iLoc.hasNext()) {
Location location = (Location) iLoc.next();
workDataRenderer.addItem(location.getName());
}
} catch (ModelException mx) {
//show dialog
mx.printStackTrace();
}
tc.setCellRenderer(workDataRenderer); |
p.s. Er worden geen exceptions gethrowed ofzo... Alles werkt perfect (data is er, juiste item wordt geselecteerd), maar er komt geen lijstje naar beneden als ik op het pijltje klik.
The ships hung in the sky in much the same way that bricks don’t.