Purtroppo la soluzione a popup menu non ha soddisfatto in pieno il mio professore, insieme al prof quindi ne abbiamo trovata un'altra...dovrebbe venire una cosa di questo tipo :
a questo proposito quindi, mi sn dato subito da fare e ho implementato una classe "Cella_giorno" con questo codice :
sono però già sorti i primi problemi: il primo problema è che andando ad implementare i listener per i singoli bottoni, mi sn accorto che nel listener nn posso settare il cambiamento del colore di fondo del pannello, infatti se faccio this. nn mi da l'opzione setbackground.codice:package interfaccia; import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; public final class Cella_giorno extends JPanel { private String giorno; public Cella_giorno(){ this.setLayout(new BorderLayout()); this.setBorder(BorderFactory.createLineBorder(Color.black)); final JButton button1 = new JButton(); button1.setBackground(Color.red); button1.setSize(20, 20); button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { } }); JButton button2 = new JButton(); button2.setBackground(Color.orange); button2.setSize(20, 20); JButton button3 = new JButton(); button3.setBackground(Color.yellow); button3.setSize(20, 20); //pannello che contiene i tre bottoni JPanel trebottonipanel = new JPanel(); trebottonipanel.setLayout(new FlowLayout()); trebottonipanel.add(button1); trebottonipanel.add(button2); trebottonipanel.add(button3); this.add(trebottonipanel, BorderLayout.SOUTH); //pannello che contiene il giorno (L, M etc) JPanel panelgiorno = new JPanel(new BorderLayout()); this.add(panelgiorno,BorderLayout.NORTH); } public void setGiorno(String giorno){ JLabel giornolabel = new JLabel(); giornolabel.setText(giorno); giornolabel.setHorizontalAlignment(JLabel.CENTER); // pannello che contiene il giorno (L, M etc) JPanel panelgiorno = new JPanel(new BorderLayout()); panelgiorno.add(giornolabel); this.add(panelgiorno,BorderLayout.NORTH); } }
inoltre andando ad applicare questa classe nel mio pannello principale, il risultato non è stato grankè cm si può vedere nella figura
cm mai i tasti colorati nn sono venuti di forma quadrata?
perchè i pannelli con le label mattina,pomeriggio,notte sono venuti così allungati?forse dipende dal layout del pannello in cui sn andato a inserire la classe "Cella_giorno" ? Il layout del pannello bordato di nero (per intenderciquello che comprende le scritte grado di pref, grado di pref del turno giornaliero, e le varie istanze di "Cella_giorno) ha un BoxLayout, mentre a sua volta le varie istanze di "Cella_giorno" sn inserite in un pannello con un gridLayout.





Rispondi quotando
)

