【Java】モーダルDLG内でリストを表示
Javaを学習し始めて間もない初心者です。よろしくお願いします。
========================================
開発環境:Eclipse SDK(Version: 3.5.0)
開発言語:Java
========================================
にて、プログラムを作成しています。
メインDLGの中に配置したボタンを押下したタイミングで、
モーダルDLGを開き、そのDLG内にリストを表示させたいのですが、
参考サイトなどを見ながら、とりあえずモーダルDLGは表示されましたが、
リストが表示されません。
下記に作成ソースを記載しますので、解決法をご存知の方おられましたら、
どこが悪く、どう修正すれば良いかについて、ご教示お願い致します。
なお、当方学習中の身ですので、より良いコードを書くために、
その他の指摘などももしあれば幸いです。
【ソースコード】
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.event.*;
import java.awt.*;
public class TestList extends JFrame implements ActionListener{
Dialog dlg;
Frame frm;
public static void main(String[] args){
TestList frame = new TestList();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(10, 10, 400, 100);
frame.setTitle("リスト表示");
frame.setVisible(true);
}
TestList(){
{
// リスト表示ボタンを追加
JButton btn = new JButton("リストDLGを表示");
btn.addActionListener(this);
JPanel p2 = new JPanel();
p2.add(btn);
getContentPane().add(p2, BorderLayout.CENTER);
}
}
// ボタン押下イベントを取得する関数
public void actionPerformed(ActionEvent e){
// リスト表示ボタンが押下された時
if (frm == null) {
frm = new Frame("リスト");
frm.setSize(200 , 200);
frm.setVisible(true);
String list_n[] = {"テスト1", "テスト2", "テスト3", "テスト4", "テスト5"};
JList list = new JList(list_n);
dlg = new Dialog(frm, "リスト" , true);
JScrollPane sp = new JScrollPane();
sp.getViewport().setView(list);
sp.setPreferredSize(new Dimension(200, 80));
JPanel p = new JPanel();
p.add(sp);
dlg.add(p, BorderLayout.CENTER);
}
}
}