(Ich habe die anderen 2 Fragen gesehen, die Mine in Titel ähnlich sind, aber sie sind unterschiedlich und bieten keine Lösung für mein Problem.)Warum kann JFrame nicht angezeigt werden, wenn der Thread aufgerufen wird?
Hallo,
ich den Code unten haben, einfache Darstellung von Linien. Ich deklariere hauptsächlich einen JFrame und rufe dann eine neue Instanz der DrawGraph1-Klasse auf und übergebe den JFrame als Argument. Im Konstruktor rufe ich einen Thread (EventQueue.invokeLater) auf. Der Konstruktor verwenden, um die JFrame und verwenden Sie es ein paar Zeilen und String und was auch immer)
(Tut mir leid, falsche Vertiefung zu schaffen, hat es viel)
package test;
import java.awt.*;
import java.awt.geom.*;
import java.text.DateFormatSymbols;
import javax.swing.*;
public class test {
public static void main(String[] args){
final JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 700);
frame.setVisible(true);
DrawGraph1 obj = new DrawGraph1(frame);
}
}
class DrawGraph1{
DrawGraph1(final JFrame frame){
EventQueue.invokeLater(new Runnable(){
@Override
public void run(){
frame.setTitle("LineDrawing");
frame.add(new JComponent()
{
@Override
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
Line2D line = new Line2D.Double();
int decrement = 0, label = 0;
g2.setColor(Color.red);
g.drawString("Red Line ->> High temperatures", 330, 110);
g2.setColor(Color.green);
g.drawString("Green Line ->> Low temperatures", 330, 130);
} });}});}}
So Nach meinen Tests, erreicht das Programm gezwickt worden der Konstruktor, übergibt den Rahmen, und startet den Faden, aber anscheinend hält er an der Linie
frame.add(new JComponent()
Mit dem NetBeans-Debugger unterstreichen (oder etwas) die Add-Methode. Ich habe auch versucht, in dem ich den Thread im Haupt aufrufen, übergebe den JFrame an den Konstruktor, spring zu ihm und es stoppt auch bei der gleichen Aussage.
Die Anzeige ist einfach der Rahmen selbst mit den Einstellungen vor der Anweisung add (d. H. In den Haupteinstellungen wie Größe).
Ich bin mir ziemlich sicher, dass es sehr albern Problem ist, da es gestern funktionierte, nicht sicher, was ich änderte, aber ich gab einfach auf.
Danke, es hat funktioniert –