1

階層化されたペイン全体に一連のパネルがあります。sideBar を topBar と tabbedPanel から分離するには、セパレーターが必要です。配置するために 10 ピクセルのバッファーを残しました。残念ながら、おそらく JLayeredPane が原因で、表示できません。

セパレーターの X 位置を定義する方法はありますか? これで解決するはずです。いずれにせよ、これはコードのサンプルで、ほとんどの情報を削除しました。

または、サイドバーと他の 2 つのパネルから定義された分割を取得できる限り、まったく別のソリューションを提供します。既に BorderLayout.WEST を sideBar に適用しようとしましたが、JLayeredPane であるため、エラーが発生します。

lPane = new JLayeredPane();
lPane.setBounds(0, 0, 1024, 768);

calendarFrame = new JFrame ("Calendar Frame");
calendarFrame.setPreferredSize(new Dimension(1024, 768));
calendarFrame.setLayout(null);

//Prepare side bar
sideBar = new JPanel ();
sideBar.setLayout(null);
sideBar.setBounds(0, 0, 210, 768);

//Prepare top bar
topBar = new JPanel ();
topBar.setLayout(null);
topBar.setBounds(220, 0, 774, 50);

//Create tabbed pane
tabbedPane = new JTabbedPane();
tabbedPane.setBounds(220, 50, 774, 700);
//Tab code here, but not needed for questuion

calendarFrame.add(lPane, BorderLayout.CENTER);
lPane.add(sideBar, new Integer(0), 0);
lPane.add(Box.createHorizontalStrut(5));
lPane.add(new JSeparator(SwingConstants.VERTICAL));
lPane.add(Box.createHorizontalStrut(5));
lPane.add(topBar, new Integer(1), 0);
lPane.add(tabbedPane, new Integer(2), 0);
4

1 に答える 1

2

編集:

固定の10ピクセルのギャップを作成する場合は、

あなたが使用することができます

ただ私の好奇心はあなたです...

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;

public class EditableListExample extends JFrame {

    private static final long serialVersionUID = 1L;

    public EditableListExample() {
        super("Editable List Example");
        String[] data = {"a", "b", "c", "d", "e", "f", "g"};
        JList list = new JList(data);
        JScrollPane scrollList = new JScrollPane(list);
        scrollList.setMinimumSize(new Dimension(100, 80));
        Box listBox = new Box(BoxLayout.Y_AXIS);
        listBox.add(scrollList);
        listBox.add(new JLabel("JList"));
        DefaultTableModel dm = new DefaultTableModel();
        Vector<String> dummyHeader = new Vector<String>();
        dummyHeader.addElement("");
        dm.setDataVector(strArray2Vector(data), dummyHeader);
        JTable table = new JTable(dm);
        table.setShowGrid(false);
        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        JScrollPane scrollTable = new JScrollPane(table);
        scrollTable.setColumnHeader(null);
        scrollTable.setMinimumSize(new Dimension(100, 80));
        Box tableBox = new Box(BoxLayout.Y_AXIS);
        tableBox.add(scrollTable);
        tableBox.add(new JLabel("JTable"));
        Container c = getContentPane();
        c.setLayout(new BoxLayout(c, BoxLayout.X_AXIS));
        c.add(listBox);
        c.add(new JSeparator(SwingConstants.VERTICAL));
        //c.add(new JLabel("test"));
        //c.add(new JSeparator(SwingConstants.HORIZONTAL));
        c.add(tableBox);
        pack();
        setVisible(true);
    }

    private Vector<Object> strArray2Vector(String[] str) {
        Vector<Object> vector = new Vector<Object>();
        for (int i = 0; i < str.length; i++) {
            Vector<Object> v = new Vector<Object>();
            v.addElement(str[i]);
            vector.addElement(v);
        }
        return vector;
    }

    public static void main(String[] args) {
        final EditableListExample frame = new EditableListExample();
        frame.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}
于 2012-04-01T20:31:11.507 に答える