DanielDj
22-12-2010, 23:00
Ciao a tutti, devo realizzre per un esame universitario un calendario/agenda.
Mi sono trovato davante ad uno scoglio che non riesco a superare.
ho creato una classe che prende in ingeresso il mese e l'anno e restituisce una matrice 5x7 contentente i giorni del calendario per inserirli poi all'interno di una jTable....fin qui tutto ok.
sopra alla tabella ho creato 2 jButton per passare rispettivamente al mese precedente ed a quello successivo.
il tutto inserito all'interno di una classe che estende JFrame.
il problema è che non so cosa inserire nel metodo actionPerformed.
L'unica cosa che mi è venuta in mente è istanziare di nuovo la classe che estende il jframe, ma in questo modo mi crea una nuova finestra.
per farvi capire meglio allego una parte del codice
public class LeftFrame extends JFrame implements ActionListener{
public Container container;
public LeftFrame(int Month, int Year){
GridBagLayout layout = new GridBagLayout();
GridBagConstraints lim = new GridBagConstraints();
container = new JPanel();
container.setLayout(layout);
JButton prevButton = new JButton("<");
prevButton.setPreferredSize(new Dimension(50, 10));
lim.gridx = 0;
lim.gridy = 0;
container.add(prevButton,lim);
prevButton.addActionListener(this);
JButton next = new JButton(">");
next.setPreferredSize(new Dimension(50, 10));
lim.gridx = 2;
lim.gridy = 0;
lim.anchor = GridBagConstraints.EAST;
container.add(next,lim);
JLabel monthLabel = new JLabel();
lim.gridx = 1;
lim.gridy = 0;
lim.anchor = GridBagConstraints.CENTER;
container.add(monthLabel,lim);
JTable jTable1 = new JTable();
JScrollPane jScrollPane1 = new JScrollPane();
lim.gridx = 0;
lim.gridy = 1;
lim.gridwidth = 3;
lim.gridheight = 1;
jScrollPane1.setPreferredSize(new Dimension(170, 110));
jTable1.setModel(new DefaultTableModel(
new Object [][] {
{mat[0][0], mat[0][1], mat[0][2], mat[0][3], mat[0][4], mat[0][5], mat[0][6]},....
vi risparmio la costruzione della tabella.
....
jScrollPane1.setViewportView(jTable1);
container.add(jScrollPane1,lim);
Container contPane = this.getContentPane();
contPane.add(container, BorderLayout.CENTER);
this.pack();
public void actionPerformed(ActionEvent e) {
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
GregorianCalendar gc = new GregorianCalendar();
int Year = gc.get(Calendar.YEAR);
int Month = gc.get(Calendar.MONTH);
new LeftFrame(Month,Year).setVisible(true);
}
});
}
}
Scusate per la lunghezza del post.
Sicuramente c'è qualche errore di fondo.
:help:
Accetto qualsiasi tipo di consiglio. Grazie Mille
Mi sono trovato davante ad uno scoglio che non riesco a superare.
ho creato una classe che prende in ingeresso il mese e l'anno e restituisce una matrice 5x7 contentente i giorni del calendario per inserirli poi all'interno di una jTable....fin qui tutto ok.
sopra alla tabella ho creato 2 jButton per passare rispettivamente al mese precedente ed a quello successivo.
il tutto inserito all'interno di una classe che estende JFrame.
il problema è che non so cosa inserire nel metodo actionPerformed.
L'unica cosa che mi è venuta in mente è istanziare di nuovo la classe che estende il jframe, ma in questo modo mi crea una nuova finestra.
per farvi capire meglio allego una parte del codice
public class LeftFrame extends JFrame implements ActionListener{
public Container container;
public LeftFrame(int Month, int Year){
GridBagLayout layout = new GridBagLayout();
GridBagConstraints lim = new GridBagConstraints();
container = new JPanel();
container.setLayout(layout);
JButton prevButton = new JButton("<");
prevButton.setPreferredSize(new Dimension(50, 10));
lim.gridx = 0;
lim.gridy = 0;
container.add(prevButton,lim);
prevButton.addActionListener(this);
JButton next = new JButton(">");
next.setPreferredSize(new Dimension(50, 10));
lim.gridx = 2;
lim.gridy = 0;
lim.anchor = GridBagConstraints.EAST;
container.add(next,lim);
JLabel monthLabel = new JLabel();
lim.gridx = 1;
lim.gridy = 0;
lim.anchor = GridBagConstraints.CENTER;
container.add(monthLabel,lim);
JTable jTable1 = new JTable();
JScrollPane jScrollPane1 = new JScrollPane();
lim.gridx = 0;
lim.gridy = 1;
lim.gridwidth = 3;
lim.gridheight = 1;
jScrollPane1.setPreferredSize(new Dimension(170, 110));
jTable1.setModel(new DefaultTableModel(
new Object [][] {
{mat[0][0], mat[0][1], mat[0][2], mat[0][3], mat[0][4], mat[0][5], mat[0][6]},....
vi risparmio la costruzione della tabella.
....
jScrollPane1.setViewportView(jTable1);
container.add(jScrollPane1,lim);
Container contPane = this.getContentPane();
contPane.add(container, BorderLayout.CENTER);
this.pack();
public void actionPerformed(ActionEvent e) {
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
GregorianCalendar gc = new GregorianCalendar();
int Year = gc.get(Calendar.YEAR);
int Month = gc.get(Calendar.MONTH);
new LeftFrame(Month,Year).setVisible(true);
}
});
}
}
Scusate per la lunghezza del post.
Sicuramente c'è qualche errore di fondo.
:help:
Accetto qualsiasi tipo di consiglio. Grazie Mille