Hallo, ich habe ein Problem:
ich habe eine grafische Oberfläche:
Hier möchte ich aus einer anderen Klasse ein Frame einfügen. In diesem Frame wird ein Textfeld gezeigt, der den Output der Konsole wiedergibt.
Wie mache ich das am besten? Ich weis, das ich JInternalFrame benutzen muss. Aber ich weis nicht wie. Muss ich in der Klasse Konsole ein JInternalFrame erzeugen und dann in Klasse Banner mit add() diesen Frame hinzufügen?
Oder genügt es in der Klasse Banner ein JInternalFrame zu erzeugen und mit
konsole.setContentPane(??); den Inhalt zu definieren?
Danke für die hilfe und die aufgewendete Zeit.
ich habe eine grafische Oberfläche:
Java:
public class Banner extends JFrame implements ActionListener {
public Banner() {
setTitle("Grafische Oberfläche");
setSize(1000, 1000);
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(desktop, BorderLayout.CENTER);
.
.
.
}
}
Hier möchte ich aus einer anderen Klasse ein Frame einfügen. In diesem Frame wird ein Textfeld gezeigt, der den Output der Konsole wiedergibt.
Java:
public class Konsole extends JFrame{
/**
* Fenster
*/
JPanel panel = new JPanel (new GridBagLayout());
JTextArea empfangen = new JTextArea();
JScrollPane empfangenJScrollPane = new JScrollPane();
void start(){
/**
* @param args
*/
redirectSystemStreams();
System.out.println("Konsole erzeugt");
}
private void updateTextArea(final String text) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
empfangen.append(text);
}
});
}
public void redirectSystemStreams() {
GridBagConstraints constraints = new GridBagConstraints();
setTitle("Konsole");
addWindowListener(new WindowListener());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
empfangenJScrollPane.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
empfangenJScrollPane.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
empfangenJScrollPane.setViewportView(empfangen);
constraints.gridx = 0;
constraints.gridy = 2;
constraints.weightx = 1;
constraints.weighty = 1;
constraints.fill = GridBagConstraints.BOTH;
panel.add(empfangenJScrollPane, constraints);
add(panel);
pack();
setSize(600, 300);
setVisible(true);
System.out.println("Fenster erzeugt");
.
.
.
Wie mache ich das am besten? Ich weis, das ich JInternalFrame benutzen muss. Aber ich weis nicht wie. Muss ich in der Klasse Konsole ein JInternalFrame erzeugen und dann in Klasse Banner mit add() diesen Frame hinzufügen?
Oder genügt es in der Klasse Banner ein JInternalFrame zu erzeugen und mit
konsole.setContentPane(??); den Inhalt zu definieren?
Danke für die hilfe und die aufgewendete Zeit.