En la JList de java Swing, haga clic en un elemento y automáticamente se marcará al frente. ¿Qué necesitas hacer para obtener un ejemplo o una idea? Pidiendo ayuda a los expertos.
Lista pública(){
super(" Lista de verificación de AK ");
String[] listData = { "Apple" , "naranja", "cereza", "arándano", "plátano", "ciruela roja", "sandía" };
Prueba {
ui manager . .getsystemlookandfeelclassname());
} catch(Exception e) {
System.out.println("Apariencia del sistema no encontrada");
}
casilla de verificación de la lista JList final = new JList(buildCheckBoxItems(datos de la lista. longitud));
Descripción de la lista JList final = new JList(datos de la lista)
descripción de la lista. setselectionmode(ListSelectionModel. Selección de radio);
descripción de la lista. addmouse oyente(nuevo MouseAdapter() {
clic del mouse vacío público (evento del mouse){
if (me.getClickCount()!= 2) {
Return;
}
int selectedIndex = lista de descripción de ubicación para indexar(me . get point());
if(selectedIndex & lt; 0) {
Return;
}
CheckBoxItem elemento =( CheckBoxItem)casilla de verificación de lista. obtener modelo(). getElementAt(selectedIndex);
item.setChecked(!item. está marcado());
repintar casilla de verificación();
}
});
listCheckBox.setCellRenderer(new checkbox renderer());
list checkbox . Selección de radio);
listCheckBox.addMouseListener(new MouseAdapter() {
clic del mouse en vacío público (evento del mouse yo){
int selectedIndex = lista de casilla de verificación. ubicación a indexar(me . get point());
if(selectedIndex & lt; 0) {
return;
}
CheckBoxItem elemento =(CheckBoxItem)casilla de verificación de lista obtener modelo().
getElementAt(selectedIndex);
item.setChecked(!item . is check());
descripción de la lista setselectedindex(selectedIndex);
casilla de verificación de la lista. repaint();
}
});
Panel de desplazamiento JScrollPane = new JScrollPane();
panel de desplazamiento setrowheaderview(. casilla de verificación de lista);
panel de desplazamiento . setviewportview(descripción de lista);
descripción de lista . setfixedcellheight(20); casilla de verificación de lista . getfixedcellheight());
casilla de verificación de lista setfixedcellwidth(20);
getContentPane(). agregar(panel de desplazamiento); //, BorderLayout. Centro);
setSize(350, 200);
establecer visible(true);
}
elemento de casilla de verificación privada[] crear elementos de casilla de verificación (elementos totales de int){
elemento de casilla de verificación[]elementos de casilla de verificación = nuevo elemento de casilla de verificación[elementos totales];
for(int contador = 0; contador & lt total de elementos ;Contador++) {
elementos de casilla de verificación[contador]= nuevo elemento de casilla de verificación();
}
Devolver elementos de casilla de verificación
} p>
Public static void main(String args[]) {
Lista de verificación = nueva lista de verificación();
lista de verificación addwindowlistener(nuevo adaptador de ventana()){
cierre de ventana nula pública (evento de ventana nosotros){
system exit(0);
}
}); p>
}
Clase CheckboxItem{
Valor booleano privado marcado;
CheckboxItem público() {
isChecked = false
}
Public Boolean isChecked() {
Devolución isChecked
} p>
public void setChecked(Boolean valor){
isChecked = valor
}
}
/* Establecer JCheckBox Clase interna presentada a JList */
La clase CheckBoxRenderer extiende JCheckBox e implementa ListCellRenderer {
Public checkboxRenderer() {
set background(ui manager. getcolor(" list . text background ")); p>
set foreground(ui manager . getcolor(" list . text foreground "));
}
Componente público getListCellRendererComponent(JList listBox, Object obj, int currentindex,
Booleano isChecked, booleano hasFocus) {
setSelected(((CheckBoxItem) obj).
está marcado());
Devuelve esto;
}
}
}
Además, Es más fácil usar una tabla de una sola columna y ocultar las filas subrayadas.