Java JTextArea nicht die Anzeige in der GUI
Ich versuche zum erstellen einer einfachen swing-GUI für Java-Anwendung, die ich Schreibe, aber ich habe ein wenig Mühe, Dinge auf dem display JPanel, und ich Frage mich, wenn jemand darauf hinweisen könnte, was ich falsch mache?
Ich habe folgenden code in meine Gui.java Klasse:
package openDIS;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Gui extends JFrame{
public Gui(){
setTitle("DIS Filter");
setSize(1000, 500);
setLocation (10, 10);
setDefaultCloseOperation(EXIT_ON_CLOSE);
initGui();
}
/*public quitButton(){
initGui();
} */
private void initGui(){
//JFrame frame = new JFrame();
JPanel panel = new JPanel();
this.getContentPane().add(panel);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("DIS Filter");
this.setSize(1000, 500);
panel.setLayout(null);
/*Add a JTextArea to display the output DIS information */
JTextArea displayOutput = new JTextArea();
panel.add(displayOutput);
//String data = EspduReceiver.espdu;
int n = EspduReceiver.entitySite.size();
for (int i = 0; i < n; i++){
EspduReceiver.receivePdu();
System.out.println(EspduReceiver.entitySite.get(i));
System.out.println(EspduReceiver.entityApplication.get(i));
System.out.println(EspduReceiver.entity.get(i));
displayOutput.append(EspduReceiver.entitySite.get(i).toString());
displayOutput.append(EspduReceiver.entityApplication.get(i).toString());
displayOutput.append(EspduReceiver.entity.get(i).toString());
}
JButton quitButton = new JButton("Quit");
panel.add(quitButton);
quitButton.setBounds(875, 400, 80, 30); /*Set the location of the button in the window, and its size */
quitButton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
panel.add(quitButton);
//setTitle("Quit");
//setSize(60,30); /*This line was overwriting the previously set values for the size of the window */
setLocationRelativeTo(null);
panel.repaint();
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args){ /* I probably don't need a main method here- I have one in EspduReceiver.java */
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run(){
Gui gui = new Gui();
gui.setVisible(true);
}
});
}
}
Derzeit, wenn ich die Klasse, die ein Fenster öffnet, mit dem Titel "DIS-Filter" und einen "Beenden" - button in der rechten unteren Ecke die Schaltfläche "beenden" ordnungsgemäß funktioniert.
Jedoch, egal was ich versuche, ich kann nicht scheinen, um die JTextArea angezeigt... kann mir jemand erklären, was mache ich hier falsch?
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht mit einem
null
layout; geben Sie den text-Bereich eine bevorzugte Größe, undpack()
den umschließendenWindow
.pack()
ist nicht etwas, das ich über vor - wie würde ich es verwenden? Das tutorial auf http://www.oracle.com hat das Beispielframe.pack()
- ich hab das versucht, aber es scheint nicht zu funktionieren.. nicht sicher-wenn ich es Recht...add(panel)
am Ende der GUI-Initialisierung.Müssen Sie noch ein layout verwenden FlowLayout als einfachste. Auch müssen Sie noch festlegen, JTextArea Größe.
JPanel
ist schonFlowLayout
.versuchen Sie dies: