以前作りかけたJDialogクラスサンプルです。画面のボタン、テキストボックスを選択していくとイベントが発行されたことを確認するログが出力され、別ダイアログが表示されるなど何かが発生します。起動時は AmdDialog が表示され、その後イベントに応じて他のダイアログが表示されます。少し前のコードなので詳細な説明はできませんが、参考程度に扱ってみてください。
実行方法
javac JDialogTest.java
java JDialogTest
[JDialogTest.java]
/**
* JDialogTest (メインクラス)
*/
public class JDialogTest {
public static void main(String args[]) {
AmdDialog d = new AmdDialog();
d.show();
}
}
[AmdDialog.java]
import java.awt.Button;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ResourceBundle;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
* AmdDialog class
*/
class AmdDialog extends JDialog {
private JPanel ivjJDialogContentPane = null;
private JLabel ivjJLabel1 = null;
private JPanel ivjJPanel1 = null;
class IvjEventHandler implements ActionListener {
public void actionPerformed(java.awt.event.ActionEvent e) {
if (e.getSource() == AmdDialog.this.getJButton1())
connEtoC1();
};
};
IvjEventHandler ivjEventHandler = new IvjEventHandler();
private javax.swing.JButton ivjJButton1 = null;
private JButton ivjJButton2 = null;
/**
* AmdDialog コンストラクター・コメント。
*/
public AmdDialog() {
super();
initialize();
}
/**
* AmdDialog コンストラクター・コメント。
* @param owner java.awt.Dialog
*/
public AmdDialog(java.awt.Dialog owner) {
super(owner);
}
/**
* AmdDialog コンストラクター・コメント。
* @param owner java.awt.Dialog
* @param title java.lang.String
*/
public AmdDialog(Dialog owner, String title) {
super(owner, title);
}
/**
* AmdDialog コンストラクター・コメント。
* @param owner java.awt.Dialog
* @param title java.lang.String
* @param modal boolean
*/
public AmdDialog(java.awt.Dialog owner, String title, boolean modal) {
super(owner, title, modal);
}
/**
* AmdDialog コンストラクター・コメント。
* @param owner java.awt.Dialog
* @param modal boolean
*/
public AmdDialog(java.awt.Dialog owner, boolean modal) {
super(owner, modal);
}
/**
* AmdDialog コンストラクター・コメント。
* @param owner java.awt.Frame
*/
public AmdDialog(java.awt.Frame owner) {
super(owner);
}
/**
* AmdDialog コンストラクター・コメント。
* @param owner java.awt.Frame
* @param title java.lang.String
*/
public AmdDialog(java.awt.Frame owner, String title) {
super(owner, title);
}
/**
* AmdDialog コンストラクター・コメント。
* @param owner java.awt.Frame
* @param title java.lang.String
* @param modal boolean
*/
public AmdDialog(java.awt.Frame owner, String title, boolean modal) {
super(owner, title, modal);
}
/**
* AmdDialog コンストラクター・コメント。
* @param owner java.awt.Frame
* @param modal boolean
*/
public AmdDialog(Frame owner, boolean modal) {
super(owner, modal);
}
/**
* connEtoC1: (JButton1.action. --> AmdDialog.jButton1_ActionEvents()V)
*/
/* 警告 : このメソッドは再生成されます。 */
private void connEtoC1() {
try {
// user code begin {1}
// user code end
this.jButton1_ActionEvents();
// user code begin {2}
// user code end
} catch (java.lang.Throwable ivjExc) {
// user code begin {3}
// user code end
handleException(ivjExc);
}
}
/**
* JButton1 のプロパティー値を戻します。
* @return javax.swing.JButton
*/
/* 警告 : このメソッドは再生成されます。 */
protected JButton getJButton1() {
if (ivjJButton1 == null) {
try {
ivjJButton1 = new javax.swing.JButton();
ivjJButton1.setName("JButton1");
ivjJButton1.setText("JButton1");
ivjJButton1.setBounds(222, 34, 85, 25);
// user code begin {1}
// user code end
} catch (java.lang.Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJButton1;
}
/**
* JButton1 のプロパティー値を戻します。
* @return javax.swing.JButton
*/
/* 警告 : このメソッドは再生成されます。 */
protected JButton getJButton2() {
if (ivjJButton2 == null) {
try {
ivjJButton2 = new javax.swing.JButton();
ivjJButton2.setName("JButton2");
ivjJButton2.setText("JButton2");
ivjJButton2.setBounds(222, 60, 85, 25);
// user code begin {1}
// user code end
} catch (java.lang.Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJButton2;
}
/**
* JDialogContentPane のプロパティー値を戻します。
* @return javax.swing.JPanel
*/
/* 警告 : このメソッドは再生成されます。 */
private JPanel getJDialogContentPane() {
if (ivjJDialogContentPane == null) {
try {
ivjJDialogContentPane = new javax.swing.JPanel();
ivjJDialogContentPane.setName("JDialogContentPane");
ivjJDialogContentPane.setLayout(null);
getJDialogContentPane().add(
getJPanel1(),
getJPanel1().getName());
// user code begin {1}
// user code end
} catch (java.lang.Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJDialogContentPane;
}
/**
* JLabel1 のプロパティー値を戻します。
* @return javax.swing.JLabel
*/
/* 警告 : このメソッドは再生成されます。 */
private JLabel getJLabel1() {
if (ivjJLabel1 == null) {
try {
ivjJLabel1 = new javax.swing.JLabel();
ivjJLabel1.setName("JLabel1");
ivjJLabel1.setText("JLabel1");
ivjJLabel1.setBounds(88, 44, 45, 14);
// user code begin {1}
// user code end
} catch (java.lang.Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJLabel1;
}
/**
* JPanel1 のプロパティー値を戻します。
* @return javax.swing.JPanel
*/
/* 警告 : このメソッドは再生成されます。 */
private JPanel getJPanel1() {
if (ivjJPanel1 == null) {
try {
ivjJPanel1 = new javax.swing.JPanel();
ivjJPanel1.setName("JPanel1");
ivjJPanel1.setLayout(null);
ivjJPanel1.setBounds(5, 8, 412, 86);
getJPanel1().add(getJLabel1(), getJLabel1().getName());
getJPanel1().add(getJButton1(), getJButton1().getName());
getJPanel1().add(getJButton2(), getJButton2().getName());
// user code begin {1}
// user code end
} catch (java.lang.Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJPanel1;
}
/**
* パーツが例外を throw するたびに呼び出されます。
* @param exception java.lang.Throwable
*/
private void handleException(Throwable exception) {
/* キャッチされていない例外を標準出力に出力するには、次の行をコメント解除します */
// System.out.println("--------- キャッチされていない例外 ---------");
// exception.printStackTrace(System.out);
}
/**
* 接続の初期化
* @exception java.lang.Exception 例外記述
*/
/* 警告 : このメソッドは再生成されます。 */
private void initConnections() throws Exception {
// user code begin {1}
// user code end
// getJButton1().addActionListener(ivjEventHandler); // AMS Edit ここを変更する
AmdEvents amdEvents = new AmdEvents(this);
getJButton1().addActionListener(amdEvents);
getJButton2().addActionListener(amdEvents);
}
/**
* クラスを初期化します。
*/
/* 警告 : このメソッドは再生成されます。 */
private void initialize() {
try {
// user code begin {1}
// user code end
setName("AmdDialog");
setDefaultCloseOperation(
javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setSize(426, 240);
setContentPane(getJDialogContentPane());
initConnections();
} catch (java.lang.Throwable ivjExc) {
handleException(ivjExc);
}
// user code begin {2}
// タイトルを設定
ResourceBundle resBundle = ResourceBundle.getBundle(RESOURCE_BUNDLE);
setTitle(resBundle.getString(AmsDialogTitleResourceBundle.MAIN_MENU));
// user code end
}
private static final String RESOURCE_BUNDLE =
"AmsDialogTitleResourceBundle";
/**
* Comment
*/
public void jButton1_ActionEvents() {
AmdDialog dialog = new AmdDialog();
dialog.show();
return;
}
/**
* メイン・エントリー・ポイント - アプリケーションとして実行された場合にパーツを始動
* @param args java.lang.String[]
*/
public static void main(String[] args) {
try {
AmdDialog aAmdDialog;
aAmdDialog = new AmdDialog();
aAmdDialog.setModal(true);
aAmdDialog.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
};
});
aAmdDialog.show();
java.awt.Insets insets = aAmdDialog.getInsets();
aAmdDialog.setSize(
aAmdDialog.getWidth() + insets.left + insets.right,
aAmdDialog.getHeight() + insets.top + insets.bottom);
aAmdDialog.setVisible(true);
} catch (Throwable exception) {
System.err.println("javax.swing.JDialog の main() で例外が発生しました");
exception.printStackTrace(System.out);
}
}
}
[AmdEvents.java]
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
class AmdEvents implements ActionListener {
private AmdDialog amdDialog_ = null;
public AmdEvents(AmdDialog dialog) {
amdDialog_ = dialog;
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == amdDialog_.getJButton1()) {
actionButton1();
} else if (e.getSource() == amdDialog_.getJButton2()) {
actionButton2();
}
};
public void actionButton1() {
Ams86Dialog ams86Dialog =
new Ams86Dialog(amdDialog_, AmsDialogTitleResourceBundle.MAIN_MENU);
ams86Dialog.show();
}
public void actionButton2() {
Uma86Dialog ams86Dialog =
new Uma86Dialog(amdDialog_, AmsDialogTitleResourceBundle.MAIN_MENU);
ams86Dialog.show();
}
}
[Ams86Dialog.java]
import java.awt.Dialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
* Ams86Dialog クラス
*/
public class Ams86Dialog extends AmsDialog800600 {
class IvjEventHandler
implements ActionListener, MouseListener {
public void actionPerformed(ActionEvent e) {
System.out.println("actionPerformed");
if (e.getSource() == Ams86Dialog.this.getJButton1())
connEtoC1();
if (e.getSource() == Ams86Dialog.this.getJButton2())
connEtoC2();
if (e.getSource() == Ams86Dialog.this.getJTextField1())
connEtoC1Text();
};
// 以下は MouseListener より
public void mouseClicked(MouseEvent e) {
System.out.println(
"mouseClicked " + e.getSource() + " < " + e.paramString());
}
public void mousePressed(MouseEvent e) {
System.out.println(
"mousePressed " + e.getSource() + " < " + e.paramString());
}
public void mouseReleased(MouseEvent e) {
System.out.println(
"mouseReleased " + e.getSource() + " < " + e.paramString());
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
};
private JPanel ivjAmsDialog800600ContentPane = null;
IvjEventHandler ivjEventHandler = new IvjEventHandler();
private JButton ivjJButton1 = null;
private JButton ivjJButton2 = null;
private JTextField ivjJTextField1 = null;
/**
* Ams86Dialog コンストラクター・コメント。
* @param owner java.awt.Dialog
* @param titleKey String
*/
public Ams86Dialog(Dialog owner, String titleKey) {
super(owner, titleKey);
initialize();
}
/**
* connEtoC1: (JButton1.action. --> Ams86Dialog.jButton1_ActionEvents()V)
*/
/* 警告 : このメソッドは再生成されます。 */
private void connEtoC1() {
try {
// user code begin {1}
// user code end
this.jButton1_ActionEvents();
// user code begin {2}
// user code end
} catch (Throwable ivjExc) {
// user code begin {3}
// user code end
handleException(ivjExc);
}
}
/**
* connEtoC2: (JButton2.action. --> Ams86Dialog.jButton2_ActionEvents()V)
*/
/* 警告 : このメソッドは再生成されます。 */
private void connEtoC2() {
try {
// user code begin {1}
// user code end
this.jButton2_ActionEvents();
// user code begin {2}
// user code end
} catch (Throwable ivjExc) {
// user code begin {3}
// user code end
handleException(ivjExc);
}
}
/**
* connEtoC1: (JTextField1.action. --> ClickTextDialog.jTextField1_ActionEvents()V)
*/
/* 警告 : このメソッドは再生成されます。 */
private void connEtoC1Text() {
try {
// user code begin {1}
// user code end
this.jTextField1_ActionEvents();
// user code begin {2}
// user code end
} catch (Throwable ivjExc) {
// user code begin {3}
// user code end
handleException(ivjExc);
}
}
/**
* AmsDialog800600ContentPane のプロパティー値を戻します。
* @return javax.swing.JPanel
*/
/* 警告 : このメソッドは再生成されます。 */
private javax.swing.JPanel getAmsDialog800600ContentPane() {
if (ivjAmsDialog800600ContentPane == null) {
try {
ivjAmsDialog800600ContentPane = new javax.swing.JPanel();
ivjAmsDialog800600ContentPane.setName(
"AmsDialog800600ContentPane");
ivjAmsDialog800600ContentPane.setLayout(null);
getAmsDialog800600ContentPane().add(
getJButton1(),
getJButton1().getName());
getAmsDialog800600ContentPane().add(
getJButton2(),
getJButton2().getName());
getAmsDialog800600ContentPane().add(
getJTextField1(),
getJTextField1().getName());
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjAmsDialog800600ContentPane;
}
/**
* JButton1 のプロパティー値を戻します。
* @return javax.swing.JButton
*/
/* 警告 : このメソッドは再生成されます。 */
private javax.swing.JButton getJButton1() {
if (ivjJButton1 == null) {
try {
ivjJButton1 = new javax.swing.JButton();
ivjJButton1.setName("JButton1");
ivjJButton1.setText("JButton1");
ivjJButton1.setBounds(35, 15, 115, 97);
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJButton1;
}
/**
* JButton2 のプロパティー値を戻します。
* @return javax.swing.JButton
*/
/* 警告 : このメソッドは再生成されます。 */
private javax.swing.JButton getJButton2() {
if (ivjJButton2 == null) {
try {
ivjJButton2 = new javax.swing.JButton();
ivjJButton2.setName("JButton2");
ivjJButton2.setText("JButton2");
ivjJButton2.setBounds(265, 79, 139, 109);
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJButton2;
}
/**
* パーツが例外を throw するたびに呼び出されます。
* @param exception Throwable
*/
private void handleException(Throwable exception) {
/* キャッチされていない例外を標準出力に出力するには、次の行をコメント解除します */
// System.out.println("--------- キャッチされていない例外 ---------");
// exception.printStackTrace(System.out);
}
/**
* 接続の初期化
* @exception Exception 例外記述
*/
/* 警告 : このメソッドは再生成されます。 */
private void initConnections() throws Exception {
// user code begin {1}
// user code end
getJButton1().addActionListener(ivjEventHandler);
getJButton2().addActionListener(ivjEventHandler);
getJTextField1().addActionListener(ivjEventHandler);
getJTextField1().addMouseListener(ivjEventHandler);
}
/**
* クラスを初期化します。
*/
/* 警告 : このメソッドは再生成されます。 */
private void initialize() {
try {
// user code begin {1}
// user code end
setName("Ams86Dialog");
setDefaultCloseOperation(
javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
// setSize(426, 240);
setContentPane(getAmsDialog800600ContentPane());
initConnections();
} catch (Throwable ivjExc) {
handleException(ivjExc);
}
// user code begin {2}
// user code end
}
/**
* Comment
*/
public void jButton1_ActionEvents() {
Ams86Dialog ams86Dialog =
new Ams86Dialog(
this,
AmsDialogTitleResourceBundle.MAIN_MENU
+ " - create From Ams86Dialog");
ams86Dialog.show();
return;
}
/**
* Comment
*/
public void jButton2_ActionEvents() {
AmdDialog dialog = new AmdDialog();
dialog.setTitle("create From Ams86Dialog");
dialog.show();
return;
}
/**
* JTextField1 のプロパティー値を戻します。
* @return javax.swing.JTextField
*/
/* 警告 : このメソッドは再生成されます。 */
private JTextField getJTextField1() {
if (ivjJTextField1 == null) {
try {
ivjJTextField1 = new JTextField();
ivjJTextField1.setName("JTextField1");
ivjJTextField1.setBounds(67, 54, 150, 18);
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJTextField1;
}
/**
* Comment
*/
public void jTextField1_ActionEvents() {
return;
}
}
[AmsDialog800600.java]
import javax.swing.JDialog;
import java.util.ResourceBundle;
import java.awt.Dialog;
/**
* モーダルな固定サイズDialog
*/
public abstract class AmsDialog800600 extends JDialog {
private static final int WIDTH = 800;
private static final int HEIGHT = 600;
private static final String RESOURCE_BUNDLE =
"AmsDialogTitleResourceBundle";
ResourceBundle resBundle_ = ResourceBundle.getBundle(RESOURCE_BUNDLE);
public AmsDialog800600(Dialog owner, String titleKey) {
// モーダルダイアログを作成
super(owner, false);
// タイトルを設定
setTitle(resBundle_.getString(titleKey));
// サイズを設定
setSize(WIDTH, HEIGHT);
// サイズ変更不可
setResizable(false);
System.out.println(
"AmsDialog800600 ObjectName = " + getClass().getName());
System.out.println("AmsDialog800600 = " + getClass());
}
}
[AmsDialogTitleResourceBundle.java]
import java.util.ListResourceBundle;
public class AmsDialogTitleResourceBundle extends ListResourceBundle {
protected static final String MAIN_MENU = "業務メニュー";
protected static final String PASSWORD_INPUT = "パスワード入力";
protected static final String TRAINING_MENU = "練習メニュー";
protected static final String IS_UPDATE = "IsUpdate";
static final Object[][] contents_ = { { MAIN_MENU, "業務メニュー" }, {
PASSWORD_INPUT, "パスワード入力" }, {
TRAINING_MENU, "業務" }, {
IS_UPDATE, "更新しますか?" }, };
protected Object[][] getContents() {
return contents_;
}
}