Я делаю проект для своего класса, и у меня следующая ситуация: это JDialog, который получает объект в конструкторе для работы с ним. Объект «Альбом» имеет два атрибута, которые могут принимать значения 0 или 1 в соответствии с логическим значением MySQL. Когда окно инициализируется, оно проверяет состояние этих двух атрибутов. Если один из них установлен в 1, соответствующий jCheckBox проверяется. В противном случае (случай 0) он остается непроверенным, и то же самое для второго атрибута.
Что я хочу получить, так это сделать два jCheckBox нередактируемыми, не отключая их, то есть они по-прежнему выглядят как «включенные», но если вы нажмете, ничего не произойдет, потому что я не хочу, чтобы они выглядели серыми как отключенные.
Я пробовал несколько вещей, таких как создание потока, который постоянно проверяет состояние флажков, и если он не установлен в атрибуте альбома, он меняет его на правильное состояние, но это не работает, вы можете установить или снять оба флажка как желанный.
Что я мог сделать?
Вот что у меня пока есть.
public class JDVerAlbum extends javax.swing.JDialog {
/**
* Creates new form JDVerAlbum
*/
Album a;
/**
*
* @deprecated
*/
public JDVerAlbum(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
}
public JDVerAlbum(java.awt.Frame parent, boolean modal, Album a) {
super(parent, modal);
this.a=a;
initComponents();
inicializar();
}
private void inicializar(){
Statement stm = Controlador.connect();
String s = null;
try {
ResultSet rs = stm.executeQuery("SELECT grupo.nombre from album, grupo where album.nombre='"+a.getName()+"' and album.idgrupo=grupo.id;");
rs.next();
s = rs.getString(1);
} catch (SQLException ex) {
Logger.getLogger(JDVerAlbum.class.getName()).log(Level.SEVERE, null, ex);
}
jLabelAlbum.setText(a.getName()+" - "+s);
this.setTitle("Quaver Records - Ver álbum - "+jLabelAlbum.getText());
jTextFieldAño.setText(""+a.getReleaseYear());
jTextFieldTipo.setText(""+a.getType());
if(a.getPhysicalSales()==1){
jCheckBoxFisica.setSelected(true);
}
if(a.getDigitalSales()==1){
jCheckBoxDigital.setSelected(true);
}
}