Вопрос: Я хочу установить изображение из файла для JLabel. Как всегда каждый раз, когда я запускаю его, я получаю эту ошибку ниже --- Любая помощь в определении этого результата будет очень признательна, спасибо!Попытка установить значок на jlabel продолжает ломать
Вот мой основной класс
Exception in thread "main" java.lang.IllegalArgumentException: horizontalAlignment
at javax.swing.JLabel.checkHorizontalKey(JLabel.java:608)
at javax.swing.JLabel.setHorizontalAlignment(JLabel.java:766)
at javax.swing.JLabel.<init>(JLabel.java:163)
at javax.swing.JLabel.<init>(JLabel.java:183)
at widget.Widget.<init>(Widget.java:30)
at widget.Widget.main(Widget.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
public class Widget extends JFrame {
static String temp;
static String icon_image;
public Widget(){
setUndecorated(true);
setSize(200,200);
temp = weather.temp();
icon_image = "C:\\Users\\jsnow\\IdeaProjects\\SnowWidget_x\\Images\\partlycloudy.gif";
//weather.weather_pic();
JLabel myText = new JLabel("I: "+ temp,
SwingConstants.TOP);
JLabel mypic = new JLabel("h", SwingConstants.BOTTOM);
mypic.setIcon(new ImageIcon(icon_image));
add(myText);
add(mypic);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
Shape shape = new Ellipse2D.Float(0,0,200,200);
AWTUtilities.setWindowShape(this, shape);
}
public static void main(String[] args) throws IOException, SAXException, ParserConfigurationException {
new Widget();
}
}
ошибка говорит вам именно то, что случилось и где - вы используете неправильный второй параметр для параметра горизонтального выравнивания для вашего вызова конструктора JLabel. Прочтите [JLabel API] (http://docs.oracle.com/javase/8/docs/api/javax/swing/JLabel.html#JLabel-javax.swing.Icon-int-), чтобы узнать, что разрешено. –
Хорошо, как бы я это исправить? Пример @HovercraftFullOfEels, пожалуйста, – Snowman08
Вы можете использовать горизонтальные выравнивания только с помощью JLabel. Но здесь вы использовали вертикальное выравнивание – Blip