在JAVA中,实现一个简单的图像浏览器,部署“上一张”、“下一张”两个按钮,点击按钮可前后翻阅图片。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在JAVA中,实现一个简单的图像浏览器,部署“上一张”、“下一张”两个按钮,点击按钮可前后翻阅图片。相关的知识,希望对你有一定的参考价值。

在本机查看图片,希望有详细代码,谢谢..

我这有一个!图片你自己找!但必须改成1.jpg,2.jpg........你也可以用卡片布局!比较不错!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class bmt1 implements ActionListener
JFrame f;
JPanel p1;
JPanel p2;
JButton b1;
JButton b2;
JButton b3;
JButton b4;
JLabel l1;
ImageIcon icon1;
ImageIcon icon2;
ImageIcon icon3;
ImageIcon icon4;
Boolean ture;
int n=0;
public bmt1()
f=new JFrame("版面布局");
f.setSize(400,500);
f.setVisible(true);
Container con=f.getContentPane();
con.setLayout(new GridLayout(2,1));
p1=new JPanel();
p2=new JPanel();
con.add(p1);
con.add(p2);
b1=new JButton("第一张");
b2=new JButton("下一张");
b3=new JButton("前一张");
b4=new JButton("最后一张");
p2.add(b1);
p2.add(b2);
p2.add(b3);
p2.add(b4);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
p2.setLayout(new FlowLayout());
l1=new JLabel();
p1.add(l1);
icon1=new ImageIcon("1.jpg");
icon2=new ImageIcon("2.jpg");
icon3=new ImageIcon("3.jpg");
icon4=new ImageIcon("4.jpg");
f.addWindowListener(new WindowAdapter()
public void windowClosing(WindowEvent e)
System.exit(0);
);

public void actionPerformed(ActionEvent e)
if(e.getSource()==b1)
n=1;
l1.setIcon(new ImageIcon("1.jpg"));
if(e.getSource()==b2)
n=n+1;
if(n>4)n=1;
String s=String.valueOf(n);
l1.setIcon(new ImageIcon(s+".jpg"));
if(e.getSource()==b3)
if(n<1)n=4;
n=n-1;
String s=String.valueOf(n);
l1.setIcon(new ImageIcon(s+".jpg"));
if(e.getSource()==b4)
n=4;
l1.setIcon(new ImageIcon("4.jpg"));

public static void main(String args[])
new bmt1();
参考技术A 可以尝试使用分页来实现。。。 参考技术B 前几天刚做过 代码我没放在身上 具体的流程 可以跟你说一下 我是用你个继承jpanl的类做画图面版的 把面版放在继承JFRAM这个类的容器里 然后把所有的图片的路径组成一个数组 然后根据按纽的事件来改变面板的Image 参考技术C 我们老师教我们需要写俩个类分别控制 上和下 用页面使用 ,其中加入SQL语句在数据库中查询出页数

栈和队列的java简单实现

 

栈:这是一个先进后出的数据结构,生活中类似的浏览器的返回上一页就可以利用此结构实现,代码如下:

public class Stack<T> {
    private Object[] data;//存储数据
    private int top;//表示栈顶元素
    public Stack(){
        data = new Object[100];//为了说明原理随意指定
        top =-1;
    }
    public synchronized void  put(T t){    //压栈
       data[data.length] = t;
        top++;
    }
    public synchronized T pop(){    //出栈
        if(top<0){
            return null;
        }
        T t = (T) data[top];
        top --;
        return t;
    }
}

 

 

 这只是我自己的Java实现只说明原理,但实际在java中是利用vector来存储数据的,我们知道vector其实是一个线程安全的ArrayList,而ArrayList的底层也是一个数组,所以原理上大同小异

  队列:队列其实就是我们生活中的排队现象,先进入的先出,后进入的后出,代码实现如下:

  

public class Queue<T> {
    private  Object[] data;  //存储数据
    private int head; //
    private int tail;   //

    public Queue(){
        data = new Object[100];//为了说明原理随意指定
        head =1;
        tail =1;
    }
    public void put(T t){
        data[tail] =t;
        tail++;
    }
    public T get(){
        T t =(T) data[head];
        head ++;
        return t;
    }
}

 

如上所示,也只是说明原理,其实在java jdk中也有许多不同的对列,并且对列可以由数组实现,也可以由链表实现,下面介绍链表

链表是一个类似于现实中串项链的数据结构,前一个数据指向后一个数据,当然也可以后一个数据指向前一个数据,这就是双向链表,这里不做讨论

public class MyNode<T> {
    private Node<T> headNode ;
    public MyNode(T t){
        headNode = new Node<>(t,null);
    }
    public MyNode(){

    }
    private static class Node<E> {
        Object e;
        Node<E> next;
        Node(E element, Node<E> next) {
            this.e = element;
            this.next = next;
        }
    }
    public void put(T t){
        if(headNode==null){
            headNode = new Node<>(t,null);
        }else {
            headNode= new Node<>(t,headNode);
        }
    }
    public T get(int index){
        Node node = headNode;
        for(int i=2;i<index;i++){
            node= node.next;
        }
        T t = (T) node.e;
        return t;
    }
}

  

  以上就是用Java实现的简单链表,还有双向链表是一个元素指向前一个元素和后一个元素,原理大概相同,这里可以看书链表中取固定位置的数据是非常麻烦的,必须从第一个开始依次查找,这也就是linklist不用for(int i=0;i++;i<size())遍历的原因,因为linklist的底层就是通过链表来实现的

 

以上是关于在JAVA中,实现一个简单的图像浏览器,部署“上一张”、“下一张”两个按钮,点击按钮可前后翻阅图片。的主要内容,如果未能解决你的问题,请参考以下文章

Java并发编程学习11-任务执行Demo

如何利用TensorFlow.js部署简单的AI版「你画我猜」图像识别应用

教程 | 如何利用TensorFlow.js部署简单的AI版「你画我猜」图像识别应用

栈和队列的java简单实现

java web 部署问题,页面不跳转

java实现简单的单点登录2