Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto
Lo chassis in Ceraluminium è il cuore di questo notebook in edizione 2026, un modello pensato per garantire produttività con le tipiche applicazioni di produttività personale e capace di offrire un'autonomia di funzionamento lontano dalla presa di corrente da riferimento. Potenza, facilità di trasporto e costruzione robusta tutto in un notebook compatto.
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-12-2010, 22:00   #1
DanielDj
Member
 
Iscritto dal: Dec 2006
Messaggi: 102
[Java] Cambiare mese nel mio calendario

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

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.

Accetto qualsiasi tipo di consiglio. Grazie Mille
DanielDj è offline   Rispondi citando il messaggio o parte di esso
Old 23-12-2010, 12:42   #2
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
E' corretta l'intuizione secondo cui quello che dovresti fare è un po' quello che fai nel costruttore ed è anche giusto dire che, tuttavia, il costruttore non lo puoi più usare.

Ciò che puoi fare è ripetere nell'actionPerformed quella parte del costruttore che si occupa di riempire i diversi controlli che hai nella tua finestra con i valori che dipendono dal mese scelto.

A conti fatti direi che si tratta di cambiare il testo nell'etichetta "monthLabel" e rigenerare il contenuto della tabella, vale a dire creare un nuovo DefaultTableModel, ficcarci dentro i giorni e poi chiamare jTable1.setModel(il nuovo modello). Al limite puoi riciclare il modello esistente e usare setValueAt sulla tabella, cambia poco.

Per ragioni di integrità - a naso direi che l'actionPerformed è contenuto nell'ambito delle variabili locali jTable1 e monthLabel - sia jTable1 che monthLabel dovranno essere dichiarati final.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 23-12-2010, 15:22   #3
DanielDj
Member
 
Iscritto dal: Dec 2006
Messaggi: 102
Grazie gentilissimo!!
comunque ho risolto raggionando in modo simile a te.

ho creato un metodo updateTable() in cui rifaccio calcolare la matrice con i giorni del calendario e ricreo DefaultTableModel passandogli i nuovi valori della matrice.

questa è solo una piccola parte del progetto.
Se in questi giorni mi servirà di nuovo aiuto mi rivolgero a voi esperti

Per ora grazie.
DanielDj è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto ASUS Zenbook 14 (UX3480AA): tanta autonomia con ...
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Il mercato PC crolla del 20% nel terzo t...
Una batteria Nio sostituita ogni 0,47 se...
MSI porta in Italia Prestige N16 Flip AI...
Speciale fai da te: le migliori offerte ...
Nuovo leak di GTA 6: gare, tuning e Jaso...
Apple Watch SE 3 con cassa da 44 mm a 24...
Ecco i 3 migliori TV in offerta: Xiaomi ...
Vitalik Buterin (Ethereum): l'IA potrebb...
Recensione HUAWEI WATCH D3, il migliore ...
Robot ECOVACS da 249 a 399 €: differenze...
GlobalFoundries produrrà negli US...
Apple prepara un evento per marted&igrav...
Musk, Huang e Lisa Su alla Casa Bianca: ...
iPhone Air 2 sarà ancora pi&ugrav...
Data center in stallo: San Francisco blo...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:19.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v