gpt4 book ai didi

java - JToolBar 拖放插入的行为不符合预期

转载 作者:行者123 更新时间:2023-11-30 10:00:21 26 4
gpt4 key购买 nike

Video的问题。

问题 1:无论我将其放到哪个位置,从左侧拖动任何 JToolBar 都会插入到最右侧。

问题 2:将最右边的 JToolBar 拖动到任何位置都不会产生任何变化,如视频中所示。

期望的行为:我希望被拖动的 JToolBar 插入到我将其放入的两个组件之间。在视频中,我本以为第一次插入后会出现绿色红色蓝色。我正在尝试实现 Eclipse 或 Visual Studio 用于其工具栏组件的相同行为。我怎样才能做到这一点?

谢谢

package sudoku;

import java.awt.Color;

import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JToolBar;

public class UIToolbar extends JPanel {

private static final long serialVersionUID = -5279534877002998610L;

private static JToolBar CreateToolBar(String name, Color color) {

JToolBar toolbar = new JToolBar();

toolbar.setBackground(color);
toolbar.setFloatable(true);
toolbar.add(new JLabel(name));

return toolbar;
}

public UIToolbar() {

super();

this.setLayout(new BoxLayout(this, BoxLayout.X_AXIS));

this.add(CreateToolBar("label1", Color.red));
this.add(CreateToolBar("label2", Color.green));
this.add(CreateToolBar("label3", Color.blue));
}
}

编辑:我想 Java 可能天真地不支持这个特性,我可能只需要自己实现它。

最佳答案

要拖动 JToolBar 起作用,它的父级必须是 BorderLayout,任何边都没有其他子级。

来自JToolBar documentation :

For drag-out to work correctly, it is recommended that you add JToolBar instances to one of the four "sides" of a container whose layout manager is a BorderLayout, and do not add children to any of the other four "sides".

关于java - JToolBar 拖放插入的行为不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58051719/

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