Hallo alle zusammen,
habe ein kleines Problem mit dem schliessen des JDialog. Ich möchte mit ESC mein JDialog schliessen aber aus welchen Gründen auch immer klappt das nicht so, wie ich möchte. Wenn ich ESC oder ein andere Taste betätige passiert nichts. Ich hoffe es kann mir jemand bei der Problemlösung helfen.
Gruß Willi
habe ein kleines Problem mit dem schliessen des JDialog. Ich möchte mit ESC mein JDialog schliessen aber aus welchen Gründen auch immer klappt das nicht so, wie ich möchte. Wenn ich ESC oder ein andere Taste betätige passiert nichts. Ich hoffe es kann mir jemand bei der Problemlösung helfen.
Code:
import java.util.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import javax.swing.table.DefaultTableModel;
public class ExceptionCalendar extends JDialog {
public ExceptionCalendar()
{
OpenCalendar();
}
public void OpenCalendar()
{
this.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent event)
{
if (event.getKeyCode()== KeyEvent.VK_ESCAPE)
{
setVisible(false);
dispose();
}
}
});
JPanel pan = new JPanel();
getContentPane().add(pan);
final GregorianCalendar c = new GregorianCalendar();
c.setTimeZone( TimeZone.getTimeZone("ECT") );
//============================================ JSpinner Year =======================================
final Calendar standardWert = Calendar.getInstance();
standardWert.add(Calendar.YEAR, 0);
final Calendar von = Calendar.getInstance();
von.add(Calendar.YEAR, -50);
final Calendar bis = Calendar.getInstance();
bis.add(Calendar.YEAR, 50);
final JSpinner spinner = new JSpinner(
new SpinnerDateModel(standardWert.getTime(),von.getTime(),bis.getTime(),Calendar.YEAR));
spinner.setEditor(new javax.swing.JSpinner.DateEditor(spinner, "yyyy"));
//============================================ JComboBox Month =======================================
String comedians[] = {
"January", "February" , "March", "April",
"May", "June", "July", "August", "September",
"October", "November", "December" };
final JComboBox box = new JComboBox(comedians);
box.setSelectedIndex(c.get(Calendar.MONTH));
//============================================ JTabel Calendar =======================================
final String title[] = new String[]{"Monday","Tuesday", "Wednesday", "Thursday", "Friday", "Saturday","Sunday"};
final String month[][] = calenderDate(c);
final DefaultTableModel data = new DefaultTableModel(month,title);
final JTable tabelCalendar = new JTable(data){
public boolean isCellEditable(int x, int y)
{
return false;
}
};
tabelCalendar.setShowGrid(false);
tabelCalendar.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
spinner.addChangeListener(new javax.swing.event.ChangeListener()
{
public void stateChanged(javax.swing.event.ChangeEvent e)
{
int iYear = Integer.parseInt(spinner.getValue().toString().substring(24));
c.set( Calendar.YEAR, iYear );
data.setDataVector(calenderDate(c),title);
}
});
box.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
int i = box.getSelectedIndex();
c.set(Calendar.MONTH, i);
data.setDataVector(calenderDate(c),title);
}
});
//============================================ Input Components ======================================
pan.add(box);
pan.add(spinner);
pan.add(new JScrollPane(tabelCalendar));
//================================== Set Location and Size of Dialog ==================================
setModal(true);
setResizable(true);
setLocation(278, 110);
setSize(466, 238);
setVisible(true);
}
public String[][] calenderDate(Calendar c)
{
String[][] month = new String[6][7];
int mo = 0 ,tu = 0 ,we = 0, th = 0, fr = 0, sa = 0, su = 0;
int dayDate = c.get(Calendar.DATE);
for (int i = 1; i<=c.getActualMaximum(Calendar.DAY_OF_MONTH);i++){
c.set( Calendar.DATE, i );
int date = c.get(Calendar.DAY_OF_WEEK);
int dayOfMonth = c.get(Calendar.DAY_OF_MONTH);
if (date==2)
{
if(dayOfMonth == 1)
{
dayOfMonth = -1;
}
month[mo][0]= new String().valueOf(c.get(Calendar.DATE));
mo++;
}
else
if(dayOfMonth == 1)
{
month[mo][0]= "";
mo++;
}
if (date==3)
{
if(dayOfMonth == 1)
{
dayOfMonth = -1;
}
month[tu][1]= new String().valueOf(c.get(Calendar.DATE));
tu++;
}
else
if(dayOfMonth == 1)
{
month[tu][0]= "";
tu++;
}
if (date==4)
{
if(dayOfMonth == 1)
{
dayOfMonth = -1;
}
month[we][2]= new String().valueOf(c.get(Calendar.DATE));
we++;
}
else
if(dayOfMonth == 1)
{
month[we][0]= "";
we++;
}
if (date==5)
{
if(dayOfMonth == 1)
{
dayOfMonth = -1;
}
month[th][3]= new String().valueOf(c.get(Calendar.DATE));
th++;
}
else
if(dayOfMonth == 1)
{
month[th][0]= "";
th++;
}
if (date==6)
{
if(dayOfMonth == 1)
{
dayOfMonth = -1;
}
month[fr][4]= new String().valueOf(c.get(Calendar.DATE));
fr++;
}
else
if(dayOfMonth == 1)
{
month[fr][0]= "";
fr++;
}
if (date==7)
{
if(dayOfMonth == 1)
{
dayOfMonth = -1;
}
month[sa][5]= new String().valueOf(c.get(Calendar.DATE));
sa++;
}
else
if(dayOfMonth == 1)
{
month[sa][0]= "";
sa++;
}
if (date==1)
{
if(dayOfMonth == 1)
{
dayOfMonth = -1;
}
month[su][6] = new String().valueOf(c.get(Calendar.DATE));
su++;
}
else
if(dayOfMonth == 1)
{
month[su][0]= "";
su++;
}
}
c.set(c.DATE,dayDate);
return month;
}
}
Gruß Willi