2012-03-02 5 views
1

jtabbedpane의 탭에 여러 이미지를 표시하는 방법을 제안 할 수 있습니까? 예를 들어 이미지의 축소판보기를 표시하고 다른 탭에서 열어야하는 이미지를 선택하고 싶습니다.tabbedpane에 여러 이미지를 표시

내가 원하는 것을 보여주기 위해 제 코드를 넣었습니다. 여기에 나는 이미지를 그렸지만 실제로 이미지를로드하여 편집을 위해 선택할 수있게하려고합니다. GridLayout 또는 GridBagLayout

import javax.swing.*; 
import java.awt.*; 
import java.awt.Event.*; 
import java.io.File; 
import java.awt.image.BufferedImage; 
import javax.imageio.ImageIO; 
import java.io.IOException; 

public class SwindDesign { 
    public static void main(String[] args) throws IOException { 
    JFrame frame = new JFrame("Split Pain"); 
    frame.setSize(700, 500); 
    frame.setVisible(true); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setLayout(new GridLayout()); 

    //panel 
    JPanel panel = new JPanel(); 
    panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); 
    panel.add(new PicturePanel()); 

    JTabbedPane jtp = new JTabbedPane(); 

    jtp.addTab("Set Image", panel); 
     jtp.addTab("Compare Image", new JButton()); 
     frame.add(jtp); 

    } 
} 
class PicturePanel extends JPanel { 

File folder = new File("C:/Documents and Settings/All Users/Documents/My Pictures/Sample Pictures"); 
File[] listOfFiles = folder.listFiles(); 
ImageIcon[] img ; 
JComponent lblimg; 
JTabbedPane jtp = new JTabbedPane(); 
private BufferedImage[] b = new BufferedImage[10]; 

public PicturePanel() throws IOException { 
    for (int i = 0; i < listOfFiles.length; i++) { 
     System.out.println("chek panth"+listOfFiles[i].getName().toString()); 
     b[i] = ImageIO.read(new File("C:/Documents and Settings/All Users/Documents/My Pictures/Sample Pictures/" + listOfFiles[i].getName().toString())); 
    } 
} 

@Override 
protected void paintComponent(Graphics g) { 
    super.paintComponents(g); 
    Graphics2D g2 = (Graphics2D) g; 
    int k = 10; 
    for (int j = 0; j < listOfFiles.length - 1; j++) { 
     g2.drawImage(b[j], k, 0, 100, 100, null); 
     k = k + 75; 
     } 
    } 
} 

답변

2
  1. 사용 JPanelJLabel의 목록을 표시합니다.
  2. 각 레이블에 대해 하나의 이미지를 설정하고 각 레이블에 MouseListener을 첨부하십시오. 라벨의 클릭에 큰 이미지로 새로운 JPanel 또는 JLabel을 만들고 축소판 탭
+0

더에 추가 [여기] (http://stackoverflow.com/a/6916719/230513). 또한'JSplitPane'을 고려하십시오. – trashgod

+0

Lable은 jlist에 jlabel을 추가하는 방법에 jlist에 추가되지 않습니까? – Jony

관련 문제