Juzzz
Gebruiker
- Lid geworden
- 15 jan 2008
- Berichten
- 281
Hoi allemaal, het is al weer een tijdje geleden dat ik hier gepost heb en ik zie dat de site vernieuwd is, mooi!
Ik heb al een tijdje met java gespeeld maar wil nu meer voor het echte werk gaan. Zoals het maken van echte (grotere) applicaties.
Ik ben begonnen met een klein frameworkje te maken in het MVC concept.
Het eerste waar ik tegen op liep is het van scherm veranderen tijdens de applicatie. Dus niet dat je elke keer een nieuwe window krijgt.
ik heb hiervoor iets verzonnen door verschillende JPanels te maken en die dan in de contentPane Container te gooien.
Bij een nieuw scherm gooi ik eerst alles er uit en vervolgens de nieuwe er in d.m.v. een functie.
nou werkt (bijna) alles, alleen wil het scherm niet refreshen zodat je direct de verandering ziet.
dit gebeurd tevens wel bij het minimaliseren, maximaliseren en/of het met de hand vergroten/verkleinen van de window.
Repaint werkt helaas niet.
weet iemand hier een goede oplossing voor?
code:
Om het te runnen moet een de main klasse deze initialiseren:
alvast bedankt
Ik heb al een tijdje met java gespeeld maar wil nu meer voor het echte werk gaan. Zoals het maken van echte (grotere) applicaties.
Ik ben begonnen met een klein frameworkje te maken in het MVC concept.
Het eerste waar ik tegen op liep is het van scherm veranderen tijdens de applicatie. Dus niet dat je elke keer een nieuwe window krijgt.
ik heb hiervoor iets verzonnen door verschillende JPanels te maken en die dan in de contentPane Container te gooien.
Bij een nieuw scherm gooi ik eerst alles er uit en vervolgens de nieuwe er in d.m.v. een functie.
nou werkt (bijna) alles, alleen wil het scherm niet refreshen zodat je direct de verandering ziet.
dit gebeurd tevens wel bij het minimaliseren, maximaliseren en/of het met de hand vergroten/verkleinen van de window.
Repaint werkt helaas niet.
weet iemand hier een goede oplossing voor?
code:
Code:
package views;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Main_view extends JFrame implements ActionListener
{
private Container window;
public Main_view()
{
window = this.getContentPane();
this.setSize(400, 400);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
window.add(mainPanel());
this.setVisible(true);
}
private JPanel mainPanel()
{
JPanel mainPanel = new JPanel();
JPanel southPanel = new JPanel();
mainPanel.setLayout(new BorderLayout());
JButton button = new JButton("Button");
southPanel.setLayout(new FlowLayout());
southPanel.add(button);
mainPanel.add(southPanel, BorderLayout.SOUTH);
button.addActionListener(this);
return mainPanel;
}
private JPanel secondPanel()
{
JPanel mainPanel = new JPanel();
JPanel southPanel = new JPanel();
mainPanel.setLayout(new BorderLayout());
JButton button1 = new JButton("one");
JButton button2 = new JButton("two");
JButton button3 = new JButton("three");
southPanel.setLayout(new FlowLayout());
southPanel.add(button1);
southPanel.add(button2);
southPanel.add(button3);
mainPanel.add(southPanel, BorderLayout.SOUTH);
return mainPanel;
}
@Override
public void actionPerformed(ActionEvent e)
{
System.out.println("remove old panel");
window.removeAll();
System.out.println("load new panel");
window.add(secondPanel());
System.out.println("refresh window");
window.repaint();
System.out.println("Done");
}
}
Om het te runnen moet een de main klasse deze initialiseren:
Code:
package controllers;
import views.Main_view;
public class Home_controller
{
public Home_controller()
{
new Main_view();
}
}
alvast bedankt