Ciao a tutti ho abbandonato definitivamente il codice che stavo scrivendo prima per questo ho deciso di fare una nuova discussione.
Ho creato un solo JFrame con 2 righe:
La prima riga contiene 4 pulsanti che abilitano le varie visualizzazioni della seconda riga.
Ho pensato di creare così 5 pannelli differenti:
1) contente i 4 bottoni
2) contente il Pannel abilitato dal bottone 1
3) contente il Pannel abilitato dal bottone 2
4) contente il Pannel abilitato dal bottone 3
5) contente il Pannel abilitato dal bottone 4
Ho pensato anche di usare un BorderLayout per posizionare i Pannelli all'interno del JFrame (il pannello dei bottoni BorderLayout.PAGE_START, e i vari
pannelli BorderLayout.CENTER)
Vi posto il codice. Per il momento è implementato solo un pannello (esattamente quello che deve apparire quando il bottone b2 viene premuto)
Il mio problema è: come posso fare in modo di far cambiare il pannello (della seconda riga) in base al bottone premuto?codice:package it.polimi.swqtool.data; import javax.swing.*; import javax.swing.table.TableModel; import java.awt.*; public class ToolGUI { /** * @param args */ private static void createAndShowGUI(){ //creo la finestra JFrame frame = new JFrame("TopLevelDemo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //creo il pannello contenente i bottoni JPanel bPanel = new JPanel(); //creo i bottoni e li aggiungo al pannello JButton b1 = new JButton("Bottone 1"); JButton b2 = new JButton("Bottone 2"); JButton b3 = new JButton("Bottone 3"); JButton b4 = new JButton("Bottone 4"); bPanel.add(b1); bPanel.add(b2); bPanel.add(b3); bPanel.add(b4); //creo le azioni dei vari bottoni //creo il pannello contente la tabella dei file JPanel filePanel = new JPanel(new BorderLayout()); //creo la tabella e lo scrollpane che la contiene //creo i pulsanti ok e annulla //e li aggiungo al pannello TableModel fileTable = new FileTableModel("file"); JTable table = new JTable(fileTable); JScrollPane scrollPane = new JScrollPane(table); table.setFillsViewportHeight(true); JButton okFileB = new JButton("OK"); JButton annullaFileB = new JButton("Annulla"); JLabel label = new JLabel(); //uso una label per distanziare i bottoni ok annulla filePanel.add(scrollPane, BorderLayout.PAGE_START); filePanel.add(annullaFileB,BorderLayout.LINE_START); filePanel.add(label, BorderLayout.CENTER); filePanel.add(okFileB, BorderLayout.LINE_END); //aggiungo il pannello al frame nello spazio in alto frame.getContentPane().add(bPanel, BorderLayout.PAGE_START); //la rendo visibile frame.pack(); frame.setVisible(true); } public static void main(String[] args) { // TODO Auto-generated method stub javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } }
Ho provato ad insere il codice già suggeritomi:
ma ho dei problemi di visibilità.codice:b2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { frame.add(scrollPane, BorderLayout.CENTER); } });
Grazie.
mainetz.

Rispondi quotando