2012-03-01 57 views
1

任何人都可以向我推薦如何在一個選項卡中加載多個圖像,並且在點擊特定圖像後,應該在另一個圖像處理選項卡中打開它?JFrame中的圖像縮略圖視圖/編輯

這裏是我的代碼的一部分。在這裏,而不是如果繪圖圖像我實際上需要打開圖像的負載和選擇特定的圖像,它應該打開其他標籤。請給我建議是使用JList的或以其他任何方式進行如何..

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; 
     } 
    } 
} 
+0

我可以使用的ImageIcon和jlable縮略圖但這樣做,我是不是能夠得到什麼,我需要能夠負載多張圖片。 我正在開發一個圖像處理應用顯示需要顯示的縮略圖文件夾中的多張圖片,並點擊它應該是在其他標籤頁中打開就可以了..處理我 – Jony 2012-03-01 08:44:11

回答

4

可能有人建議我如何加載多個..

使用循環。

..images ..

使用ImageIO.read(File/URL/InputStream)

在標籤

..

添加JPanel的標籤用合適的佈局,E.G. FlowLayoutGridLayout。將圖像放入未修飾的JButton中,並將其添加到面板。

..和點擊特定的圖像後..

添加ActionListener到按鈕。

..它應該打開一個圖像處理其他選項卡。

JTabbedPane.addTab("image name", imageEditorComponent)

+1

會嘗試,讓你知道 感謝 – Jony 2012-03-01 09:05:33

+0

你好 現在我還有一個小問題。我需要點擊兩個圖像同時進行比較的目的,我的意思是這些兩個點擊的圖像應該打開另一個標籤來比較 你能建議我怎麼過來這個? – Jony 2012-03-01 11:29:45

+0

使用'JList'顯示原始圖像。將ListSelectionListener添加到列表中。可能在'JToolBar'中添加列表下方的按鈕(編輯,比較等)。在偵聽器中接收到一個'ListSelectionEvent'時,獲取'int numSelect = list.getSelectedIndices()'。如果'numSelect == 2',啓用編輯和比較。如果該數字爲0,則禁用兩者。如果有,只啓用編輯。 – 2012-03-01 11:44:15