![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
質問の内容を書いてください こんにちは、宜しくお願いします。
親ウインドウから子ウインドウを開き、子ウインドウから親ウインドウに情報を
渡してやりたいと考えています。
以下のようなプログラムを書いたのですが、
親ウインドウから子ウインドウを開こうとして、「new DialogTest(this)」で
「this」を引数に取とろうとすると
「コンストラクターのDialogTest(new ActionListener(){}・・・)は未定義です」
とのエラーがでます。
この意味が分かりません、どのように対処すればよいのでしょうか。
宜しくお願いします。
==========================================================================
//Parent_Window
public class FrameTest extends JFrame
{
//Constructor
public FrameTest()
{
setTitle( "TEST" ) ;
setBounds( 20 , 50 , 900 , 1200 ) ;
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ) ;
JMenuBar menubar = new JMenuBar() ;
JMenu menu1 = new JMenu( "File" ) ;
menubar.add( menu1 ) ;
JMenuItem menuitem1_1 = new JMenuItem( "Open" ) ;
menuitem1_1.addActionListener
(
new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
new DialogTest( /*this*/ ) ;
}
}
) ;
menu1.add( menuitem1_1 ) ;
setJMenuBar( menubar ) ;
}
public static void main( String[] args )
{
FrameTest ft = new FrameTest( ) ;
JPanel jp = new JPanel() ;
ft.add( jp ) ;
ft.setLocation( 150 , 200 ) ;
ft.setVisible( true ) ;
}
}
========================================================
//Child_Window
public class DialogTest extends JDialog
{
public DialogTest( /*Frame parent*/ /*, If_Notifier n*/ )
{
// super( /*parent ,*/ true ) ;
setSize( 300 , 350 ) ;
addWindowListener( new DialogWindowListener() ) ;
setLocation( 400 , 250 ) ;
setLayout( new GridLayout( 1 , 2 ) ) ;
Panel p1 = new Panel();
Panel p2 = new Panel();
Panel p1_1 = new Panel();
Panel p1_2 = new Panel();
p1.setLayout( new GridLayout( 2 , 1 ) ) ;
p1_1.setBackground( Color.RED ) ;
p1_2.setBackground( Color.BLUE ) ;
p2.setBackground( Color.GREEN ) ;
p1.add( p1_1 ) ;
p1.add( p1_2 ) ;
add( p1 ) ;
add( p2 ) ;
setVisible( true ) ;
}
class DialogWindowListener extends WindowAdapter
{
public void windowClosing( WindowEvent e )
{
dispose();
}
}
}
=========================================================
No.2ベストアンサー
- 回答日時:
時間があったので見ていたのですが、私の回答に誤りがありましたので訂正します。
>>DialogTest( Frame parent, If_Notifier n)のnが必要ないのであれば、
>>DialogTest( Frame parent)と変更すればいいですし、
>>nが必要なのであればnew DialogTest(this, n)としなければなりません
menuitem1_1.addActionListener
(
new ActionListener()
{
public void actionPerformed(ActionEvent e )
{
new DialogTest(this) ;
}
}
) ;
上記の箇所ですがインデントが切れていたので気づきませんでしたが、
そもそも、new DialogTest(this) の箇所は
new ActionListener()の定義の中で書かれています。
(ActionListener(){}という書き方は{}内でActionListenerというクラスを定義するための記述です)
したがって、new DialogTest(this) のthisとはActionListenerということになります。
ですので、DialogTest( Frame parent)ではなく、DialogTest( ActionListener parent)と書かなければなりません。
No.1
- 回答日時:
質問をするのであれば正確に書きましょう。
提示されたソースですが、
FrameTestクラスは
new DialogTest( /*this*/ ) ;
DialogTest クラスは
public DialogTest( /*Frame parent*/ /*, If_Notifier n*/ )
の箇所をコメントアウトしてますよね?
これがそれぞれ
new DialogTest(this) ;
public DialogTest( Frame parent, If_Notifier n)
が正しいと想定して、問題はDialogTest( Frame parent, If_Notifier n)のコンストラクタの引数と
new DialogTest(this) で渡している引数が違いますよね?
DialogTest( Frame parent, If_Notifier n)のnが必要ないのであれば、
DialogTest( Frame parent)と変更すればいいですし、
nが必要なのであればnew DialogTest(this, n)としなければなりません。
情報を渡すとか以前の問題ですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java final 1 2022/06/10 22:49
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- VPN 何これ 1 2022/04/19 01:32
- C言語・C++・C# クラスのメンバ変数を基準に並べ替えをしたい 5 2022/12/25 17:40
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#で、あるクラスのメンバーす...
-
C#でのWNetAddConnection3の使...
-
unityでのC++エラーの原因がわ...
-
C#で別のFormへ複数の値を返そ...
-
大量のデータを読み込んで表示...
-
ピクチャボックスのクリックイ...
-
メンバ変数の隠蔽
-
Javaでデリゲート
-
長方形をドラッグするJavaアッ...
-
JavaFXでの表内のチェックボッ...
-
Junitテストでvoid戻り値メッソ...
-
Thread.sleepのInterruptedExce...
-
[C#.net]スレッド化された別フ...
-
クラス配列で例外ヌルリファレ...
-
アプレットでマウスイベントが...
-
文字列の置換
-
キーリピート?(Javaプログラミ...
-
ボタンの複数割り当てについて
-
vc++ 2005 Pictureboxの透過処理
-
C#でレート別に管理するクラス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
C#で、あるクラスのメンバーす...
-
Junitテストでvoid戻り値メッソ...
-
C#でのWNetAddConnection3の使...
-
Processingでマウスクリックで...
-
ボタンの複数割り当てについて
-
エンターキーを押すとOKボタン...
-
C# 矢印キーの取得
-
C# visibleプロパティをfalseに...
-
Thread.sleepのInterruptedExce...
-
C# DataGridView列カスタマイズ
-
C#でキーイベントが発生しない...
-
LVM_SETITEMSTATEでListViewの...
-
[C#.net]スレッド化された別フ...
-
GetDIBits関数の使い方について
-
C# 半角カナの文字化けについて
-
C# 親フォームで指定した値を...
-
javaアプレット repaintのタイ...
-
デスクトップマスコットのドラ...
-
C#で別のFormへ複数の値を返そ...
おすすめ情報