¿Cómo guarda Java Swing el estado seleccionado de una casilla de verificación?
Para utilizar BeansBinding se deben introducir dos paquetes, appframework y beansbinding. Para descargas específicas, puede consultar y descargar desde la biblioteca de Maven (¿google? "Mefen? Repos" puede encontrar muchas bibliotecas de Maven).
Da un ejemplo sencillo.
¿Importado? javax.swing.jframe;
¿Importar? org . jdesktop . beans vinculante . propiedad del bean;
¿Importar? org.jdesktop.enlace de beans.
¿Importar? org. jdesktop. enlace de beans.
¿Importar? org . jdesktop . enlaces de beans.
¿Importar? org. jdesktop. enlace de beans. estrategia de actualización automática;
¿Importar? javax.swing.jpanel;
¿Importar? Java .awt.borderlayout;
¿Importar? Java.awt.gridlayout;
¿Importar? evento de acción Java .awt .
¿Importar? Java . awt . evento de escucha de acciones;
¿Importar? javax.swing.jbutton;
¿Importar? javax.swing.jlabel;
¿Importar? javax.swing.joptionpane;
¿Importar? javax.swing.jtextfield;
¿Importar? javax.swing.jcheckbox;
¿Público? ¿clase? Columpio 8{
/**
? *?Un JavaBean muy simple, POJO.
¿Como modelo de datos
? */
¿Público? ¿clase? Computadora{
¿Privado? ¿Booleano? Huihuai;//?¿Está roto?
¿Privado? ¿Cadena? Pinpai;//?Marca
¿Privado? ¿Cadena? Hui Huai Yuanyin;//?El motivo de la destrucción
¿Privado? ¿Cadena? Hu Yong;//?¿De quién es la computadora?
¿Público? ¿Booleano? ¿Yi Shuihuai()? {
¿Volver? Huihuai;
}
¿Público? ¿Vacío? setHuihuai(¿Booleano? Huihuai)? {
¿Esto? =?Huihuai;
}
¿Público? ¿Cadena? obtenerPinpai()? {
¿Volver? Pinpai;
}
¿Público? ¿Vacío? setPinpai(¿Cadena?pinpai)? {
¿Esto? =?Pinpai;
}
¿Público? ¿Cadena? obtenerHuihuaiyuanyin()? {
¿Volver? Huihuaiyuanyin;
}
¿Público? ¿Vacío? setHuihuaiyuanyin(¿cadena? Huaihuaiyuanyin)? {
¿Es este el sonido original? =?Hui Huaiyuanyin;
}
¿Público? ¿Cadena? obtenerYonghu()? {
¿Volver? Hu Yong;
}
¿Público? ¿Vacío? setYonghu(cadena?Hu Yonghu)? {
¿Esto? =?Hu Yong;
}
¿Público? ¿Cadena? toString(){
¿Devolver? "¿El valor del atributo actual de la computadora es:\n "?
Hu Yong: "? ?Hu Yong? ?" \n "? ?
"Pingpai: "? ?Pinpai? \n "?
>"Hui Huai?" \n "?
"Hui Huaiyuan:"
} p>
}
¿Público? Swing8 (){
//?¿Crear un marco? =?new? JFrame("BeansBinding?Ejemplo");
frame.setBounds(100,?100,?500 ,?380);
¿Final? JPanel? =?nuevo? JPanel();
frame.getContentPane().Add(Panel,?BorderLayout.
Centro);
panel.setLayout(new?GridLayout(4, 2,?2,?2));
JLabel? ¿Etiqueta? =?¿Nuevo? JLabel("De quién es la computadora:");
panel.add(label);
¿Final? ¿JTextField? ut; //?Usuario
¿Final? ¿JTextField? Bt;//?Marca
¿Final? ¿JCheckBox? CB; //? ¿Roto?
¿Finales? ¿JTextField? rt;//?El motivo de la destrucción
¿Final? ¿computadora? ¿do? =?¿Nuevo? computadora();? //Crear modelo
ut? =?¿Nuevo? JTextField();
panel . add(ut);
ut . etiqueta_1? =?¿Nuevo? JLabel("Marca de computadora:");
panel add(label _ 1);
bt? =?¿Nuevo? JTextField();
panel. add(Bt);
Bt. establecer columnas(10);
cb? =?¿Nuevo? JCheckBox("¿Está roto?");
panel add(CB);
JLabel? etiqueta_2? =?¿Nuevo? JLabel(" ");
panel agregar(etiqueta _ 2);
JLabel? etiqueta_3? =?¿Nuevo? JLabel("Causa del daño:");
panel add(label _ 3);
rt? =?¿Nuevo? JTextField();
panel . add(rt);
rt . p>Grupo de enlace? bg? =?¿Nuevo? grupo de enlace (); // grupo de enlace, el contenido del enlace debe estar en el grupo de enlace.
//?Utilice el método estático de Bindings.createAutoBinding para crear una instancia de enlace.
//?Estrategia de actualización. leer_escribir? Estrategias vinculantes, lectura y escritura
//?ut? ¿Objeto fuente vinculante
//?BeanProperty.create("text ")? Propiedades de origen vinculante
//?c? ¿Vincular el objeto de destino
//?BeanProperty.create("Hu Yong")? Vincular atributos de destino
//? Vincular el atributo de texto de ut al atributo Hu Yong de c
¿Enlace? ¿Enlace de usuario? =?bindings.createautobinding(update Strategy.read_write,?but.BeanProperty.create("text "),?c,?BeanProperty.create("Hu Yong"));
//? instancia de enlace en el grupo de enlace.
BG . add vinculante(user bind);
//? Lo siguiente es similar, por lo que no entraré en detalles.
//?ut.text? - gt;? c .pinpai
BG . agregar enlace(enlaces. createautobinding(estrategia de actualización.
leer_escribir,? por cierto? BeanProperty.create("texto"),? do,? propiedad del frijol create(" pinpai ")));
//?rt.text? - gt;? c .Huihuai Yuanyin
BG . agregar enlace(enlaces. createautobinding(actualizar estrategia.read_write,?rt,?BeanProperty.create("texto"),?c,?bean property.create( " huihuayuanyin " )));
//?cb.selected? - gt;? c .Huihuai
BG . agregar enlace(bindings . createautobinding(actualizar estrategia.read_write,?cb,?BeanProperty.create("seleccionado"),?c,?bean property.create(" hui Huai " )));
//? Si el programa lo requiere, ¿solo si está marcada la casilla de verificación "Está dañado" se puede ingresar la "Causa del daño"? ¿Qué debo hacer?
//? Muy simple, vincule cb.selected al atributo habilitado de RT.
BG . agregar enlace(bindings . createautobinding(update Strategy.read_write,?cb,?BeanProperty.create("selected"),?rt,?bean property.create("enabled")) );
//?Una frase importante para hacer efectiva la versión.
BG . bind();
//Bien, agreguemos otro botón y veamos cómo funciona.
¿Botón J? ¿Botón? =?¿Nuevo? JButton("Ver efecto de enlace");
button.addActionListener(new?ActionListener()?{
@override
public?voided?actionPerformed( ActionEvent ? e)? {
joptionpane. showmessagedialog(frame,? c.toString(),? "Lista de valores de atributos del modelo",? JOptionPane. message_message);
}
});
frame.getContentPane(). agregar(botón, ?BorderLayout.south);
frame.set visible(true);
}
¿Público? ¿Electricidad estática? ¿Vacío? main(string?args[]){
¿Nuevo? balanceo 8();
}
}