3

JOptionPane(すでに行われている)を介して(おそらくボタンを使用して)ユーザーからの入力を繰り返し取得し、詳細を何か(動的オブジェクト配列について)に保存し、この情報をスクロール可能なJListのリストとして表示したいと考えています。


マイコード


import java.awt.GridLayout;
import javax.swing.*;

class Flight {



public static void main(String[] args) {

    //Panel
    JPanel panel = new JPanel(new GridLayout(7, 2,20, 20));

    //Add textfields here
    JTextField txtflightno = new JTextField(8);
    JTextField txtmechanicalstatus = new JTextField(8);
    JTextField txtmedicalstatus = new JTextField(8);
    JTextField txtfuellevel = new JTextField(8);
    JTextField txtweathercondition = new JTextField(8);
    JTextField txtfrequency = new JTextField(8);
    JTextField txtflightpath = new JTextField(8);






    //Add labels here
    JLabel lblflightno = new JLabel("Flight No : ");
    JLabel lblmechanicalstatus = new JLabel("Mechanical Status:");
    JLabel lblmedicalstatus = new JLabel("Medical Status:");
    JLabel lblfuellevel = new JLabel("Fuel Level:");
    JLabel lblweathercondition = new JLabel("Weather Condition:");
    JLabel lblfrequency = new JLabel("Frequency:");
    JLabel lblflightpath = new JLabel("Flight Path:");





    //Adding flightno to panel
    panel.add(lblflightno);
    panel.add(txtflightno);

    //Adding mechanicalstatus to the panel
    panel.add(lblmechanicalstatus);
    panel.add(txtmechanicalstatus);

    //Adding medicalstatus to the panel
    panel.add(lblmedicalstatus);
    panel.add(txtmedicalstatus);

    //Adding fuellevel to the panel
    panel.add(lblfuellevel);
    panel.add(txtfuellevel);

    //Adding weathercondition to the panel
    panel.add(lblweathercondition);
    panel.add(txtweathercondition);

    //Adding frequency to the panel
    panel.add(lblfrequency);
    panel.add(txtfrequency);

    //Adding flightpath to the panel
    panel.add(lblflightpath);
    panel.add(txtflightpath);


    panel.setBounds(0, 0, 800, 600);




   int result = JOptionPane.showConfirmDialog(null, panel, "Flight Details",
        JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
    if (result == JOptionPane.OK_OPTION) {

    }
}
}

飛行機の詳細を保存するにはどうすればよいですか?スクロール可能な JList を実装するにはどうすればよいですか? 助言がありますか。

どうもありがとう

4

3 に答える 3

9

How to Use Listsで説明したように、JListは表示するデータのソースとしてリスト モデルを使用します。データを に追加するだけDefaultListModelで、それを使用してリストを作成できます。

DefaultListModel dlm = new DefaultListModel();
// add data
JList list = new JList(dlm);
panel.add(new JScrollPane(list));
于 2010-07-08T05:55:32.563 に答える
4

JList をスクロール可能にするには、JScrollPaneに埋め込むだけです。それ以外の

add(myList, constraints);

行う

add(new JScrollPane(myList), constraints);

リストを拡張するには、JList の ListModel を ( を使用してgetListModel) 取得し、それを使用addしてオブジェクトを追加します。

Sun のチュートリアル でListModels を使用する方法について詳しく説明します。

チュートリアル のScrollPane についても詳しく説明します。

于 2010-07-08T05:58:05.753 に答える
0

ActionListenerコード スニペットで見逃していたボタンを使用する必要があります。

[OK オプション] で:

JList jlist = ...;

jlist.add(txtflightno.getText());
jlist.add(txtmechanicalstatus.getText());
jlist.add(txtmedicalstatus.getText());
....
....

& 

add(new JScrollPanel(myList), constraints);

この後、Component の validate メソッドを使用して、この新しい項目でリストを更新します。ただし、覚えておくべきことの 1 つは、リストでは各項目が行ごとに表示されるということです。アイテムを意味のある方法で表示できるJTableを使用することをお勧めします...

于 2010-07-08T05:58:28.763 に答える