我在我的JPanel中输入了一个JLabels列表:
avatarGridPanel.add(new JLabel(new ImageIcon("images/gui/orc_male.png", "Orc Male")));
avatarGridPanel.add(new JLabel(new ImageIcon("images/gui/human_male.png", "Human Male")));
avatarGridPanel.add(new JLabel(new ImageIcon("images/gui/tundrian_male.png", "Tundrian Male")));
avatarGridPanel.add(new JLabel(new ImageIcon("images/gui/brimlock_male.png", "Brimlock Male")));我想将tooltiptext添加到它们中的每一个。有没有比使用temp变量保存其中一个值,然后不断重复使用它更好的方法呢?
JLabel temp = new JLabel();
temp = new JLabel(new ImageIcon("images/gui/human_male.png", "Human Male"));
temp.setToolTipText("Human Male");
avatarGridPanel.add(temp);我试着这样做(如下所示),但不能让它工作。谢谢你的帮助!
avatarGridPanel.add(new JLabel(new ImageIcon("images/gui/human_male.png", "Human Male")).setToolTipText("Human Male"));发布于 2011-11-24 02:54:00
您可以创建一个函数来为您创建这些内容。当我有一个很大的数组,需要一遍又一遍地做同样的事情时,我有时会这样做:
private static JLabel makeLabel(String path, String name) {
JLabel label = new JLabel(new ImageIcon(path, name));
label.setToolTipText(name);
return label;
}然后在那个班级的其他地方:
avatarGridPanel.add(makeLabel("images/gui/orc_male.png", "Orc Male"));发布于 2011-11-24 02:52:41
您可以创建一个方法,在其中传递图像位置、文本和工具提示文本,以避免所有代码重复。
这应该是可行的
private static JLabel createImageLabel(String imageLocation, String name, String toolTipText) {
JLabel temp = new JLabel(new ImageIcon(imageLocation, name));
temp.setToolTipText(toolTipText);
return temp;
}发布于 2011-11-24 02:56:17
您可以使用"temp“变量,但如果这样做,您不希望首先创建一个空的JLabel,然后紧接着创建一个带有图标和文本的新JLabel。
但是创建一个helper方法呢?
...
avatarGridPanel.add(createLabel("images/gui/human_male.png", "Human Male"));
...
private JLabel createLabel(String iconPath, String description) {
JLabel label = new JLabel(new ImageIcon(iconPath, description));
label.setToolTipText(description);
return label;
} https://stackoverflow.com/questions/8247459
复制相似问题