質問: new MessageBox(shell); msg.setText("エラー"); msg.setMessage("0以上100以下を入れてください"); msg.open(); } else { lblNewLabel.setText(text.getText()); bar(g); } } }); button.setBounds(94, 226, 75, 25); button.setText("作成"); createContents(); } /** * Create contents of the shell. */ protected void createContents() { setText("SWT Application"); setSize(450, 300); } @Override protected void checkSubclass() { // Disable the check that prevents subclassing of SWT components } public void bar(Graphics g){ g.setColor(Color.darkGray); g.fillRect(10, 40, 100, 50); } } 3日ほど悩んでますが、どうすれば良いのか皆目見当が付かないので分かる方お願いします。
回答: 参考となるページでgetGraphicsを使用している内部クラスMyMouseAdapterの外部クラスであるGraphicSample03は、Frameを継承しています。そしてgetGraphicsはjava.awt.Frameが持つメソッドです。swtとawtは名前が似ていますが全く別物です。swt上でawtで使うのはちょっと無理やりしないとできません。参考にしているページがawt用なのが間違いだと思われます。 無理やりやる方法の参考 素直にswt用の描画機構GCを使う方法の参考