JDialog でコンパイルエラーになります
環境:WindowsXP,j2sdk1.4.0
Javaを勉強しているのですが、swingクラスのJDialog
,Jwindowを使用するとコンパイルエラーになります。
(JFrameの場合は、問題なく表示されます)
ソースとエラー内容は以下の通りです。
・ソース
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class JDialog{
public static void main(String [] args) {
JDialog jd =new JDialog();
jd.setBounds(0, 0, 200, 100);
jd.setTitle("JDialog Example");
jd.getContentPane().
setBackground(Color.green);
jd.addWindowListener(new MyWindowAdapter());
jd.setVisible(true);
}
}
・エラー内容
JDialog.java:12: シンボルを解釈処理できません。
シンボル: メソッド setBounds (int,int,int,int)
位置 : JDialog の クラス
jd.setBounds(0, 0, 200, 100);
^
JDialog.java:13: シンボルを解釈処理できません。
シンボル: メソッド setTitle (java.lang.String)
位置 : JDialog の クラス
jd.setTitle("JDialog Example");
^
JDialog.java:15: シンボルを解釈処理できません。
シンボル: メソッド getContentPane ()
位置 : JDialog の クラス
jd.getContentPane().setBackground(Color.green);
^
JDialog.java:16: シンボルを解釈処理できません。
シンボル: メソッド addWindowListener (MyWindowAdapter)
位置 : JDialog の クラス
jd.addWindowListener(new MyWindowAdapter());
^
JDialog.java:18: シンボルを解釈処理できません。
シンボル: メソッド setVisible (boolean)
位置 : JDialog の クラス
jd.setVisible(true);
^
エラー 5 個
誰か、助けてください!
お礼
コンポーネントの描画について参考になりました。 ありがとうございました。
補足
Tanaka Shinyaさんご回答ありがとうございます。 アドバイスに注意しながら試してみたところPanelを消した後に同じ場所に ラベルを張ることができました。 しかし、しばらく実装を進めたところまたこのイベントで不明な点が出てきた 為、お手数ですが可能でしたらご回答お願いします。 私の作成したいプログラムは ・ダブルクリックした文字をそのパネル全体にjpn(JLabel) として表示する ・右クリックでsel(JLabel)に右と表示 ・左クリックでselに左と表示する です。 アドバイスにより近い物ができたのですが「落とし穴」にはまっているようで、 ダブルクリックしてもその時はパネルが消えず、同様のイベント処理を準備してある 別のパネルをクリック(もしくは右,ダブルクリック) をした瞬間になるとさっき消えるはずであったパネルが消えます。 つまりイベントの起こるタイミングがずれている状態です。 デバッグをして症状をみたところremoveをした瞬間にはオブジェクト自体は取り除かれている けれども、視覚上は消えていないらしいことがわかりました。 それ以上の原因は私の力では調べられませんでした。 長くなってしまいましたがご指摘通りソースを文末に載せたのでご回答していただければ幸いです。 よろしくお願いいたします。 public void mouseClicked(MouseEvent e){ if(e.getClickCount()==2){ inta=0,b=0; A: for(int i=0;i<9;i++) for(int j=0;j<9;j++) if((JLabel)e.getSource()==sel[i][j]){ block[i][j].remove(selPanel[i][j]); block[a/9][b/9].setVisible(true); break A; } JLabel jpn=new JLabel("D"); block[a/9][b/9].add(jpn); jpn.setVisible(true); } else if(e.getModifiers()==e.BUTTON1_MASK) ((JLabel)e.getSource()).setText("左"); else if(e.getModifiers()==e.BUTTON3_MASK){ L: for(int a=0;a<27;a++) for(int b=0;b<27;b++) if((JLabel)e.getSource()==sel[a][b]){ ((JLabel)e.getSource()).setText("右"); break L; } } }