(私はタイトルにある鉱山に類似している他の2つの質問を見てきましたが、彼らは異なっていて、私の問題への解決策を提供していません。)スレッドが呼び出されたときにJFrameが表示されないのはなぜですか?
こんにちは、
私は以下のコードを持っています線の単純な表示。メインでJFrameを宣言してから、DrawGraph1クラスの新しいインスタンスを呼び出し、JFrameを引数として渡します。 コンストラクタでは、スレッド(EventQueue.invokeLater)を呼び出しています。コンストラクタ)のJFrameを使用して、いくつかの行と列と何を作成するためにそれを使用
(不適切なインデントについては申し訳ありません、それは多くのことを微調整されています)
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);
} });}});}}
だから、私のテストによると、プログラムが到達コンストラクタは、フレームを渡し、スレッドを開始しますが、どうやらそれは、NetBeansデバッガがaddメソッドを下線(か何か)に沿っ
frame.add(new JComponent()
で停止します。私はまた、メインでスレッドを起動し、JFrameをコンストラクタに渡してジャンプし、同じステートメントで停止するようにしました。
ディスプレイは、単にadd文の前の設定(つまりサイズなどのメイン設定)を持つFrame自体です。
私はそれが昨日働いて以来、非常にばかげた問題であると確信しています、私が変更したものはわかりませんが、私はただ諦めました。
ありがとう、それは –