Hallo zusammen
ich habe ein CardLayout erstellt, auf welchem ich auf der card1 eine Tabelle anlege. Ich möchte nun die Tabelle bei jedem Monat in der Grösse verändern. Ich kann schon 12 verschiedene Cards pro Jahr machen, dass finde ich aber nicht sehr sinnvoll. Ich möchte eigentlich alles mit der Tabelle 1 machen.
Ich weise der Tabelle auch jeweils (pro Monat) über getColumnCount einen neuen Wert zu, nur muss ich Sie wahrscheinlich dann wieder refreshen, oder?
Wenn ja, wie lautet der Befehl den ich da verwenden muss?
Hier noch der Code:
Tabellenmodell:
Besten Dank für Eure Hilfe...
Gruss
Juvux
ich habe ein CardLayout erstellt, auf welchem ich auf der card1 eine Tabelle anlege. Ich möchte nun die Tabelle bei jedem Monat in der Grösse verändern. Ich kann schon 12 verschiedene Cards pro Jahr machen, dass finde ich aber nicht sehr sinnvoll. Ich möchte eigentlich alles mit der Tabelle 1 machen.
Ich weise der Tabelle auch jeweils (pro Monat) über getColumnCount einen neuen Wert zu, nur muss ich Sie wahrscheinlich dann wieder refreshen, oder?
Wenn ja, wie lautet der Befehl den ich da verwenden muss?
Hier noch der Code:
Code:
public class CardLayoutDemo implements ItemListener {
JPanel cards; //a panel that uses CardLayout
final static String JANUAR = "January 06";
final static String FEBRUAR = "February 06";
final static String MAERZ = "March 06";
final static String APRIL = "April 06";
final static String MAI = "May 06";
final static String JUNI = "June 06";
final static String JULY = "July 06";
final static String AUGUST = "August 06";
final static String SEPTEMBER = "September 06";
final static String OKTOBER = "October 06";
final static String NOVEMBER = "November 06";
final static String DEZEMBER = "December 06";
private String month;
private JComboBox cb;
public void addComponentToPane(Container pane) {
//Put the JComboBox in a JPanel to get a nicer look.
JPanel comboBoxPane = new JPanel(); //use FlowLayout
String comboBoxItems[] = { JANUAR, FEBRUAR, MAERZ, APRIL, MAI, JUNI, JULY, AUGUST, SEPTEMBER, OKTOBER, NOVEMBER, DEZEMBER };
cb = new JComboBox(comboBoxItems);
cb.setEditable(false);
cb.addItemListener(this);
comboBoxPane.add(cb);
JButton b1;
JButton b2;
JButton b3;
JTable t1;
JTable datentabelle;
TableModel tabm1 = (TableModel) new ReservationSurfaceTableModel(null);
//Create the "cards" --> Jeder ein Verweis auf Tabelle 12 Tabellen pro Jahr
JPanel card1 = new JPanel();
card1.add(t1 = new JTable(tabm1));
card1.add(new JScrollPane(t1));
//Create the panel that contains the "cards".
cards = new JPanel(new CardLayout());
cards.add(card1, JANUAR);
cards.add(card1, FEBRUAR);
...
public void itemStateChanged(ItemEvent evt) {
CardLayout cl = (CardLayout)(cards.getLayout());
cl.show(cards, (String)evt.getItem());
month = (String) cb.getSelectedItem();
ReservationSurfaceTableModel RSTM = new ReservationSurfaceTableModel(month);
RSTM.getColumnCount();
}
Tabellenmodell:
Code:
public class ReservationSurfaceTableModel extends AbstractTableModel {
...
public ReservationSurfaceTableModel(String month) {
this.month = month;
if (this.month == null)
this.month = "January 06";
System.out.println(this.month);
}
....
public int getColumnCount() {
ret = 1;
if (month.equals ("null") || month.startsWith ("January") || month.startsWith ("March") || month.startsWith("May") || month.startsWith("July") || month.startsWith("August") || month.startsWith("October") || month.startsWith("December"))
ret = 32;
else
if (month.startsWith("April") || month.startsWith("June") || month.startsWith("September") || month.startsWith("November"))
ret = 31;
else
if (month.startsWith("February"))
SchaltjahrAbklaeren();
else
ret = 32;
return ret;
}
....
Besten Dank für Eure Hilfe...
Gruss
Juvux