1

シンプルな Swing Java アプリケーションを構築しています。JFrame と JPanel が含まれています。JPanel のコンストラクターには、渡すパラメーターが 1 つ必要です。ユーザーがこの変数を入力できるようにしたいと考えています。これで、アプリが起動したので、このパラメーターをコードで渡す必要があります。私の目標は、JPanel(およびおそらくJFrame)が開始する前に、「数字を選択してください」という質問を含む小さなウィンドウが表示され、1から10までの数字のリストを選択し、ユーザーが1つを選択してボタンを押すと、この値が渡される必要があることですmyJPanel のコンストラクターに追加します。

それを達成する方法は?

JFrame のコード:

public class MainWindow extends JFrame {

/**
 * Launch the application.
 */
 public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                MainWindow frame = new MainWindow();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
} 

/**
 * Create the frame.
 */
public MainWindow() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 542, 455);
    myJPanel panel1 = new JPanel(4); // HERE
    add(panel1);

}

}

編集

それを行うよりエレガントな方法はありますか?: ] 文字列に変換してから int に変換したくありません。

また、ユーザーが [キャンセル] ボタンをクリックした場合にアプリ全体を閉じる方法は?

    Object[] possibleSizes = { 3, 4, 5, 6, 7 };
    Object selectedValue = JOptionPane.showInputDialog(null,
    "Choose a number", "Uwaga!",
    JOptionPane.INFORMATION_MESSAGE, null,
    possibleSizes, possibleSizes[0]);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 542, 455);
    MyJPanel panel1 = new MyJPanel(Integer.parseInt(selectedValue.toString()); // HERE
    add(panel1); 1);
4

1 に答える 1

3

あなたはおそらく次のようなものを探していますJOptionPane.showInputDialog

これは非常に単純ですが、ユーザーから情報を収集することができます。String

詳細については、ダイアログの作成方法JOptionPaneを参照してください。

を使用して非常に複雑な結果を得ることができます。例として、Java で 1 桁のみを受け入れることをJOptionPane確認してください。

于 2012-11-08T03:09:29.223 に答える