gpt4 book ai didi

java - 如何使用 MigLayout 将 JLabels 与 JPanel 上的一条线连接起来?

转载 作者:行者123 更新时间:2023-12-02 05:29:03 25 4
gpt4 key购买 nike

我在谷歌上搜索了很多关于这个主题的信息,但就是找不到正确的解决方案。我尝试使用 Graphics PaintComponent 进行“绘画”,一切看起来都很好,但线条没有出现在我的 JPanel 上。创建了 JLabels 的部分代码:

frame = new JFrame();
frame.setTitle("New family tree");
...
JPanel panel = new JPanel();
panel.setBackground(new Color(30, 144, 255));
frame.getContentPane().add(panel, BorderLayout.EAST);
panel.setLayout(new MigLayout("", "[]", "[][][][][][][][]"));


JButton newPersonButton = new JButton("New Person");
panel.add(newPersonButton, "cell 0 5");

tabbedPane = new JTabbedPane(JTabbedPane.TOP);
frame.getContentPane().add(tabbedPane, BorderLayout.CENTER);

scrollPane = new JScrollPane();
tabbedPane.addTab("Tree", null, scrollPane, null);

panel_1 = new JPanel();
scrollPane.setViewportView(panel_1);
panel_1.setLayout(new MigLayout("",
"[][][][][][][][][][][][][][][][][]",
"[][][][][][][][][][][][][][][][][][][][][]"));

final JLabel lblAddGreatgrandmother = new JLabel("Add Great-grandmother");
panel_1.add(lblAddGreatgrandmother, "cell 3 4,growx");

final JLabel lblAddGrandmother_1 = new JLabel("Add Grandmother");
panel_1.add(lblAddGrandmother_1, "cell 2 5");

我应该使用绘画吗?或者将JLabels放入数组列表中并使用Point?我会感谢任何帮助。

编辑:可运行示例 - http://pastebin.com/NFug1QA1

最佳答案

java-sl.com/connector 解决方案的问题在于连接本身成为一个组件,即需要布局、接受事件等。我几年前为此整理了一个解决方案,您可以在我的 sourceforge project 中找到它。具体请参见 ConnectionPanel 和 Connection。

...另外,根据我的经验,当布局管理器设置为空并且组件不限于锁定到位时,这些连接最有用。但您会知道什么最适合您的情况。

关于java - 如何使用 MigLayout 将 JLabels 与 JPanel 上的一条线连接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25724781/

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