|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Apr 2015
Messaggi: 1
|
[Java]Problema Interfaccia grafica
Salve a tutti ho finito di studiare da poco java e ora sto iniziando a studiare le interfacce grafiche.Volevo fare un piccolo programmino di quiz con domande e risposte.Il mio problema e questo:
-Creo la classe main che contiene la schermata iniziale di benvenuto e un pulsante che dovrebbe passare al panel successivo che contiene le domande. -nel main creo il frame contenente un panel con al suo interno appunto il pulsante -Creo un altra classe che contiene che la prima schermata di domande e risposte(Naturalmente questa classe e un panel) il mio problema e che non so come far cambiare il panel che sta nel main con il panel che contiene le domande e risposte.Su internet consigliano il CardLayout e utilizzando quello non so come richiamare nel CardLayout la classe delle domande. Se invece faccio tutto un codice,cioè creo un unico e grande codice nel main, e utilizzo il CardLayout il programma funziona.Secondo me il problema e cosa inserire actionPerformed Scusate se non sono stato molto chiaro ma spero che avete capito.Ecco il codice delle 2 classi CLASSE QUIZ(contenente il main) Codice:
public class Quiz extends JFrame{ private JFrame frame; private Container contenitore; private CardLayout cardlayout; private JPanel panel; private JPanel p1; public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Quiz window = new Quiz(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } public Quiz() { frame = new JFrame("Quiz"); frame.setBounds(100, 100, 450, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); contenitore=frame.getContentPane(); contenitore.setVisible(true); initialize(); } private void initialize() { cardlayout=new CardLayout(); //Creazione CardLayout panel = new JPanel(cardlayout); //Assegno al JPanel il CardLayout p1 = new JPanel(); panel.add(p1); JLabel lblBenvenuto = new JLabel(" Benvenuto"); p1.add(lblBenvenuto); panel.setBackground(Color.GREEN); //Imposto lo sfondo per p1.setBackground(Color.BLUE); //capire quali panel sia frame.setBackground(Color.MAGENTA); //stato aggiunto dopo il //click del bottone contenitore.add(panel); bottone(); } private void bottone() { JButton Bottone = new JButton("Clicca per iniziare"); p1.add(Bottone); Bottone.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { panel.remove(p1); PaginaQuiz paginaQuiz=new PaginaQuiz(); paginaQuiz.setBounds(100, 100, 450, 300); paginaQuiz.setBackground(Color.YELLOW); panel.add(paginaQuiz); panel.repaint(); contenitore.revalidate(); } }); } } Codice:
public class PaginaQuiz extends JPanel { private JPanel contentPane; private CardLayout cardLayout; public PaginaQuiz() { initialize(); } private void initialize() { setBounds(100, 100, 450, 300); JPanel panel = new JPanel(); SpringLayout sl_panel = new SpringLayout(); panel.setLayout(sl_panel); //Creazione label per la Domanda JLabel lblNewLabel = new JLabel("Domanda"); sl_panel.putConstraint(SpringLayout.NORTH, lblNewLabel, 36, SpringLayout.NORTH, panel); panel.add(lblNewLabel); //Creazione label per le Risposte JButton btnRisposta = new JButton("risposta 1"); sl_panel.putConstraint(SpringLayout.WEST, lblNewLabel, 0, SpringLayout.WEST, btnRisposta); btnRisposta.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { //qui dovrei accedere a un altro panel se la //risposta e errata o corretta } }); panel.add(btnRisposta); Ultima modifica di Moltack : 27-04-2015 alle 20:17. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Il codice che hai postato non e' nemmeno compilabile, anzi non e' nemmeno completo.
Forse potresti renderlo almeno compilabile, cosi' che si possa lanciare ed avere un'idea di cosa hai fatto e di cosa vorresti ottenere, semplificando il lavoro di chi vorrebbe aiutarti....
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:27.