Проблема панели инструментов в свинге + Java - PullRequest
0 голосов
/ 20 марта 2011

У меня есть этот код в моем файле

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

У меня есть 2 вопроса:

Во-первых, размер файла изображения, представленного значком, не изменяется самостоятельно итаким образом обрезается по размеру кнопки.

Во-вторых, панель инструментов отображается в окне, но я могу перетащить ее в своего рода новое окно.Как я могу предотвратить это?

1 Ответ

6 голосов
/ 20 марта 2011

A) Изображение на значке можно изменить, используя следующий код:

icons[i].setImage(icons[i].getImage().getScaledInstance(width, height, Image.SCALE_DEFAULT));

B) JToolBar можно сделать незапираемым, что, как я думаю, вам нужно:

toolBar.setFloatable(false);
...