[英]Extra click to navigate between pages in Jframe
這是我為解碼24位tiff文件而編寫的代碼。
package decoding.tiff;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferInt;
import java.io.RandomAccessFile;
import java.util.ArrayList;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
public class TiffMultiPage24Bit extends javax.swing.JFrame implements
ActionListener {
private static final long serialVersionUID = -4935096415846083312L;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jLabel1;
JScrollPane logScrollPane;
static ArrayList<BufferedImage> images = new ArrayList<BufferedImage>();
static int count = 0;
static int minvalue = -1;
static int totalimages = 0;
public TiffMultiPage24Bit() {
initComponents();
jButton1.addActionListener(this);
jButton2.addActionListener(this);
}
private void initComponents() {
//Code for frame view
}
@SuppressWarnings({ "resource", "unused" })
public static void main(String args[]) throws Throwable {
{
//Code for image decoding
images.add(buff); // adding the image to array list
}
totalimages = images.size();
TiffMultiPage24Bit mp = new TiffMultiPage24Bit();
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new TiffMultiPage24Bit().setVisible(true);
}
});
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jButton1) {
count--;
if (count > minvalue) {
jLabel1.setIcon(new ImageIcon(images.get(count)));
} else {
JOptionPane.showMessageDialog(null, "No Previous Image");
}
}
if (e.getSource() == jButton2) {
count++;
if (count < totalimages) {
jLabel1.setIcon(new ImageIcon(images.get(count)));
} else {
JOptionPane.showMessageDialog(null, "No Next Image");
}
}
}
}
當我第一次單擊“ next”時,它工作正常。
但是一旦轉到最后一頁,則需要兩次單擊才能返回到上一頁....而轉到第一頁時,則需要單擊兩次以轉到下一頁。...
請幫助...。任何幫助將不勝感激...
當count
無效時,您需要將count
恢復為最大允許值
這樣想吧...
count
增加 count
> = totalimages
,顯示錯誤消息( count
現在等於(至少) totalimages
count
遞減,現在等於totalimages - 1
,這是最后一個(和當前的)圖像... 每次count
無效時,您需要將其重置回有效范圍...
if (e.getSource() == jButton1) {
count--;
if (count > minvalue) {
//...
} else {
count = minvalue;
//...
}
} else if (e.getSource() == jButton2) {
count++;
if (count < totalimages) {
//...
} else {
count = totalimages - 1;
//...
}
}
舉個例子
很棒的是,您現在擁有的方式是,我可以繼續單擊“下一步”並繼續增加count
數值...當count
達到上限或下限時,甚至可能值得禁用按鈕...
或者...我在代碼中這樣更改它.....
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jButton1) {
count--;
if(count==minvalue || count<minvalue)
{
JOptionPane.showMessageDialog(null, "No Previous Image");
count=minvalue+1;
}
if (count > minvalue && count < totalimages) {
jLabel1.setIcon(new ImageIcon(images.get(count)));
}
}
if (e.getSource() == jButton2) {
count++;
if(count==totalimages || count >totalimages)
{
count=totalimages-1;
JOptionPane.showMessageDialog(null, "No Next Image");
}
if (count < totalimages && count > minvalue) {
jLabel1.setIcon(new ImageIcon(images.get(count)));
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.