построить просмотрщик изображений с макетом карты? - PullRequest
1 голос
/ 22 августа 2010

У меня есть программа для работы с метками, но я не могу использовать ее для изображений. Я новичок, и это все, что я могу придумать до сих пор. он работает, но я не понимаю, реализуя изображения в этот код.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class CardLayoutExample extends JFrame implements KeyListener

{

 private Container pane = getContentPane();
 private CardLayout layout = new CardLayout();

 public CardLayoutExample()
 {
  pane.setLayout(layout);

  pane.add(new JLabel("hey",  SwingConstants.CENTER), "hey");
  pane.add(new JLabel("what",  SwingConstants.CENTER), "what");
  pane.add(new JLabel("is",  SwingConstants.CENTER), "is");
  pane.add(new JLabel("your",  SwingConstants.CENTER), "your");
  pane.add(new JLabel("first",  SwingConstants.CENTER), "first");
  pane.add(new JLabel("name",  SwingConstants.CENTER), "name");

  addKeyListener(this);

  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setTitle("CardLayout Example");
  setSize(410,310);
  setVisible(true);

 }

 public void keyTyped(KeyEvent event)
 {
  layout.next(pane);
 }

 public void keyPressed(KeyEvent event){}
 public void keyReleased(KeyEvent event){}

 public static void main(String args[])
 {
  CardLayoutExample top = new CardLayoutExample();
 }
}

1 Ответ

1 голос
/ 22 августа 2010

Чтобы установить изображение с помощью JLabel, передайте объект Icon в конструкторе или вызовите метод setIcon для вашего класса.

Icon icon1 = new ImageIcon("path to image filename");
JLabel label1 = new JLabel("message 1", icon1, SwingConstants.CENTER);
pane.add(label1, "*You need a static final string here - see below*");


К вашему сведению, вы неправильно добавляете элементы в свой CardLayout. При переключении панелей система выполняет "==" (не .equals) для строки, которую вы передаете в качестве идентификатора панели. Вы скоро увидите эту проблему в своем тестировании. Самый простой способ обойти это - создать статические финальные строки, которые представляют каждую панель, и использовать их в качестве идентификаторов.

...