gpt4 book ai didi

java - 分离 JLayeredPane

转载 作者:行者123 更新时间:2023-11-30 04:50:27 28 4
gpt4 key购买 nike

我在分层 Pane 中有一组面板。我需要一个分隔符来将 sideBar 与 topBar 和 tabbedPanel 分开。我留了一个 10 像素的缓冲区来放置它。不幸的是,可能由于它是 JLayeredPane,我无法查看它。

有没有办法定义分隔符的 X 位置?因为这应该可以解决它。不管怎样,这里是一个代码示例,我已从中删除了大部分信息。

或者,提供完全不同的解决方案,只要我可以从侧边栏和其他两个面板中获得定义的分割即可。我已经尝试将 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);

最佳答案

编辑:

如果您想创建固定的 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);
}
});
}
}

关于java - 分离 JLayeredPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9967308/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com