swing+中的工具栏问题;JAVA

swing+中的工具栏问题;JAVA,java,swing,jtoolbar,Java,Swing,Jtoolbar,我的文件里有这个代码 String[] iconFiles = { "state.jpg", "cursor.jpg", "arrow.jpg" }; String[] buttonLabels = { "New Node", "Attribute Change", "Add Edge"}; for (int i = 0; i < buttonLabels.length; ++i) { icons[i] = new ImageIcon(iconFiles[i]);

我的文件里有这个代码

String[] iconFiles = { "state.jpg", "cursor.jpg", "arrow.jpg" };
String[] buttonLabels = { "New Node", "Attribute Change", "Add Edge"};
for (int i = 0; i < buttonLabels.length; ++i) {
        icons[i] = new ImageIcon(iconFiles[i]);
        buttons[i] = new JButton(icons[i]);
        buttons[i].setToolTipText(buttonLabels[i]);
        buttons[i].setPreferredSize(new java.awt.Dimension(648, 600));
        toolBar.add(buttons[i]);
        toolBar.addSeparator();
}
jp2.add(toolBar) where jp2 is a Tabbed Pane
String[]iconfile={“state.jpg”、“cursor.jpg”、“arrow.jpg”};
String[]buttonLabels={“新节点”、“属性更改”、“添加边”};
对于(int i=0;i
我有两个问题

首先,由图标表示的图像文件不会自行调整大小,因此会被按钮大小剪切

其次,工具栏会显示在窗口中,但我可以将其拖动到一个新窗口中。如何防止这种情况发生?

A)可以使用以下代码重新缩放图标中的图像:

icons[i].setImage(icons[i].getImage().getScaledInstance(width, height, Image.SCALE_DEFAULT));
B)
JToolBar
可以不可浮动,这正是我认为您想要的:

toolBar.setFloatable(false);
A) 可以使用以下代码重新缩放图标中的图像:

icons[i].setImage(icons[i].getImage().getScaledInstance(width, height, Image.SCALE_DEFAULT));
B)
JToolBar
可以不可浮动,这正是我认为您想要的:

toolBar.setFloatable(false);