Sitio web de resúmenes de películas - E-sports - ¿Cómo guarda Java Swing el estado seleccionado de una casilla de verificación?

¿Cómo guarda Java Swing el estado seleccionado de una casilla de verificación?

Creo que si usas Swing para desarrollar programas, debes aprender a usar BeansBinding. BeansBinding puede vincular valores de propiedades de JavaBean. Por ejemplo, hay dos Beans, uno es su modelo de datos y el otro es JCheckbox. Luego puede vincular la propiedad seleccionada de JcheckBox a una propiedad del modelo de datos. De esta manera, en la mayoría de los casos donde no hay requisitos especiales, no necesita preocuparse por si JCheckBox está marcado, solo debe preocuparse por el estado del modelo de datos.

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ú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();

}

}