2016-11-27 12 views
-3

Помощь! Как добавить изображение на мой JFrame? Это мой кодКак добавить изображение в Java Swing?

public class JavaApplication79 extends JFrame{ 

ImageIcon icon = new ImageIcon("Downloads/splash.jpg"); 
JLabel label = new JLabel(icon); 

public JavaApplication79(){ 
    add(label); 

    setLayout(null); 
    setSize(900,500); 
    setLocationRelativeTo(null); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 

public static void main(String args[]){ 
JavaApplication79 show = new JavaApplication79(); 
show.setVisible(true); 
} 
} 
+4

Возможный дубликат [Как добавить изображение в JPanel?] (Http://stackoverflow.com/questions/299495/how-to-add-an-image-to-a-jpanel) –

+0

* 'setLayout (null); '* Угу. Добавьте 'LineBorder' в' JLabel' –

+1

1) Единственная пустая строка пробела в исходном коде - это все, что требуется * когда-либо *. Пустые строки после '{' или before '}' также типично избыточны. 2) Используйте логическую и согласованную форму отступающих кодовых строк и блоков. Отступы предназначены для того, чтобы поток кода стал проще следовать! –

ответ

1

Проблемы начинаются с null макета. Поскольку нет макета, чтобы установить размер компонента в его предпочтительный размер или любой другой размер, панель принимает свой размер по умолчанию размером 0 x 0 пикселей.


  • Для '' в левом верхнем углу кадра я бы рекомендовал FlowLayout.
  • Для «центра» кадра - GridBagLayout легко.
  • Для «центрированных» & stretched 'для заполнения рамки, GridLayout.

Подробнее о макетах в уроке Laying Out Components Within a Container.

Но дополнительный совет о совмещении макетов для разных эффектов в разных частях графического интерфейса. Используйте менеджер компоновки или combinations of them вместе с раскладкой отступов и границами для white space.