0

私は Java GUI の初心者です。

ユーザーが既に定義されているリストから項目を選択すると、その特定の項目に関連するパネルがリストの右側に表示される JList を使用してユーザー インターフェイスを構築しようとしています。それが私の目標です。ただし、最初に達成したいのは、特定のメニュー項目が選択されたときに特定のパネルを表示できるようにすることです。. .

これは私がこれまで行ってきたことです。. .

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.ListSelectionModel;

public class MainGUI extends JFrame{

    JList list = new JList(
            new String[]{"Create Account","Borrow Book","Return Book",
                 "Add Book","Delete Book","Display Details"}
    );

    public MainGUI()
    {
        JPanel panel = new JPanel();
        JPanel panel1 = new JPanel();
        list.setForeground(Color.RED);
        list.setBackground(Color.WHITE);
        list.setSelectionForeground(Color.GREEN);
        list.setSelectionBackground(Color.LIGHT_GRAY);
        list.setFixedCellWidth(150);
        list.setFixedCellHeight(50);
        list.setFont(new Font("Serif",Font.BOLD,16));
        list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        panel.add(list);
        add(panel,BorderLayout.WEST);
    }

    public static void main(String[] args) {
        MainGUI frame = new MainGUI();          
        frame.setSize(500, 350);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }    
}
4

1 に答える 1

2

探しているのは「カード レイアウト」と呼ばれるものです。カード レイアウトは、一番上のユーザー向けカードをデッキ内の別のカードと交換できるカードのデッキのようなものです。デッキ内の各カードは、さまざまな GUI を含む別の JPanel になります。アカウントを作成したり、本を借りたり、本を返したりするためのパネルが必要になります。Oracle の Web サイトにある Java チュートリアルでは、プロセスをかなり詳しく説明していますが、リストの代わりに Combobox を使用しています。

http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html

あなたのケースでは、カード レイアウトを Border Layout の中央パネルに配置することをお勧めします。次に、リストをトリガーとして使用して、表示されるカードを変更します。ユーザーがリスト内の何かを選択したことを検出する方法についてサポートが必要な場合は、Oracle の JList チュートリアルを参照してください。

http://docs.oracle.com/javase/tutorial/uiswing/components/list.html

于 2013-10-17T17:16:28.650 に答える