[英]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.