Wenn ich in meiner JTable in einen Zeile klicke, soll sich ein JDialog öffnen. Dies funzt auch ohne Probleme. Wenn ich den zu öffnenden Dialog jedoch abbreche, startet er noch zwischen 5-15 mal neu. Habe keine Ahnung warum...
Code:
private void updateKrankentable() {
malist.get(manr).setKr(ins.singlekrankinit(malist.get(manr).getId(), jahr_kr));
TableModel krankmodel = new Krankenstandmodel(malist.get(manr).getKr());
kranktable.setModel(krankmodel);
kranktable.setDefaultRenderer(Date.class, dateCF1.getRenderer());
kranktable.addMouseListener( new MouseAdapter()
{
@Override
public void mouseClicked(java.awt.event.MouseEvent e)
{
if (e.getClickCount() == 2) {
int row = kranktable.getSelectedRow();
if(row >= 0 && row < malist.get(manr).getKr().size())
{
Krankenstand help;
KrankErfassen insKE = new KrankErfassen(new javax.swing.JDialog(), true, malist.get(manr).getKr().get(row));
insKE.setVisible(true);
try {
help = insKE.getKrankenstand();
help.setM_id(malist.get(manr).getId());
ins.deleteKrankenstand(malist.get(manr).getKr().get(row));
split.splitKrankenstand(malist, manr, help);
updateKrankentable();
}
catch (NullPointerException ex) {
}
}
}
}
});
}
Code:
public class KrankErfassen extends javax.swing.JDialog {
/** Creates new form KrankErfassen */
public KrankErfassen(java.awt.Dialog parent, boolean modal, Krankenstand kr) {
super(parent, modal);
initComponents();
pVon.setLayout(new GridLayout(1,1));
pVon.add(datePicker1);
datePicker1.setDate(von);
datePicker1.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent e) {
von = (Date) datePicker1.getDate();
}
});
if(kr != null)
{
kid = kr.getK_id();
jtGrund.setText(kr.getGrund());
datePicker1.setDate(kr.getVon());
von = (Date) datePicker1.getDate();
if(kr.getBis() != null)
{
datePicker2.setDate(kr.getBis());
bis = (Date) datePicker2.getDate();
}
}
pBis.setVisible(false);
jlBis.setEnabled(false);
}
public Krankenstand getKrankenstand()
{
return help;
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
...
getContentPane().add(jPanel4);
pack();
}// </editor-fold>
private void jbOkActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(Tools.dateCheck(von, bis))
{
help = new Krankenstand();
help.setK_id(kid);
help.setGrund(jtGrund.getText());
if(jCheckBox1.isSelected())
{
help.setBis(bis);
help.setAnztage(Tools.dateDiff(von, bis));
}
else
{
help.setBis(null);
help.setAnztage(0);
}
help.setVon(von);
this.dispose();
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
help = null;
this.dispose();
}
private void chkboxBisActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
// ob auch ein bis-Datum eingegeben werden kann
if(!jCheckBox1.isSelected())
{
pBis.setVisible(false);
jlBis.setEnabled(false);
}
else
{
pBis.setVisible(true);
jlBis.setEnabled(true);
pBis.setLayout(new GridLayout(1,1));
pBis.add(datePicker2);
datePicker2.setDate(bis);
datePicker2.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent e) {
bis = (Date) datePicker2.getDate();
}
});
}
}