我想在窗口上顯示一組圖像(以及相關文本)。我想使用上一個和下一個按鈕遍歷它們。到目前爲止,我只能將圖像與JLabel
關聯。 =/使用NetBeans設置圖像庫
我該如何去做其餘的事情?我應該爲整套使用不同的容器嗎?我應該在像ArrayList
這樣的數據結構上加載圖像嗎,還是將它們放在文件夾上足夠?我如何添加事件處理,以便按下按鈕顯示下一個或上一個圖像?
這是我到目前爲止的screenshot。
我想在窗口上顯示一組圖像(以及相關文本)。我想使用上一個和下一個按鈕遍歷它們。到目前爲止,我只能將圖像與JLabel
關聯。 =/使用NetBeans設置圖像庫
我該如何去做其餘的事情?我應該爲整套使用不同的容器嗎?我應該在像ArrayList
這樣的數據結構上加載圖像嗎,還是將它們放在文件夾上足夠?我如何添加事件處理,以便按下按鈕顯示下一個或上一個圖像?
這是我到目前爲止的screenshot。
你還在嗎?
我假設你已經找到了如何加載你的每個圖像的路徑(如果它們在同一個文件夾內)。您應該將目錄的路徑存儲在全局變量中,然後將每個圖像的名稱存儲到Vector中,如果您想遍歷它們。只需存儲文件的名稱,而不是整個圖像。 您還必須將當前圖像的索引存儲爲全局變量。
如果你使用一個JFrame作爲你的主窗口中,你必須指定它實現的類ActionListener的是這樣的:
public class MyClass extends JFrame implements ActionListener
然後,你必須到事件處理程序連接到您的按鈕(JButton的)。這必須放置在窗口(MyClass的)的構造函數中:
nextButton.addActionListener(this);
previousButton.addActionListener(this);
已實施的ActionListener,你的類必須定義方法的actionPerformed。在它裏面,你必須根據按下的按鈕來改變圖像的內容。
public void actionPerformed(ActionEvent e)
{
Object o = e.getSource();
if(o == nextButton)
{
currentIndex++;
if(currentIndex == vectorImages.size())
{
currentIndex = 0;
}
//Change the image in the JLabel
label.setIcon(new ImageIcon(vectorImages.get(currentIndex)));
}
else
{
//Iterate backwards
}
}
希望這有助於...
這是早已解決使用類似的方法。感謝您的回答,我接受它導致項目結束使用幾乎相同的代碼。 – andandandand 2010-11-05 13:57:35