`
lplplllp
  • 浏览: 3365 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

(swing)用一个JPanel显示本地文件夹下多个图片的问题

阅读更多
现要用swing实现显示出制定文件夹下所有图片

利用 JButton 触发 在JPanel中显示某一文件夹下的所有图片文件,但是每一次点击JButton时显示的总是第一次输入文件夹目录后点击显示的那些图片(除非此后选择一图片更多的文件夹),总之前一个目录下的图片总是要盖住以后的。

请问是怎么回事?

public class first extends JFrame implements ActionListener {
        Image image;
        int new_w;
        int new_h;
        int framex=400;
        int framey=300;
        JPanel top = new JPanel();
        JPanel center = new JPanel();
        JTextField name = new JTextField(15);
        Container cp = new Container();
        public first() {
                super("perfect");
                setDefaultCloseOperation(EXIT_ON_CLOSE);
                init();
                setVisible(true);
        }
        public static void main(String[] args) {
                new first();
        }
        private void init() {
                JPanel top = new JPanel();
          top.add(new JLabel("File :"));
          top.add(name);
          JButton b = new JButton("Show");
          top.add(b);
          cp = getContentPane();
          cp.add(BorderLayout.NORTH, top);
         
          name.setText("C:\\");
          setSize(new Dimension(framex, framey));
          b.addActionListener(this);
          }

       
        public void actionPerformed(ActionEvent e) {
       
         String pURL = "C:\\";
        try {
        pURL = name.getDocument().getText(0, name.getDocument().getLength());
} catch (BadLocationException e1) {
e1.printStackTrace();
}
                                    //得到该制定文件夹下所有图片文件的名称
ArrayList<String> imga = imgFiles(pURL);
name.setText(pURL);
        image = Toolkit.getDefaultToolkit().getImage("C:\\Winter.JPG");
        for(int dd = 0;dd<imga.size();dd++){
        }

        center = new Mypanel(pURL,imga);
                cp.add(BorderLayout.CENTER,center);
                center.validate();

                getContentPane().validate();
        }

}

class Mypanel extends javax.swing.JPanel {

private static final long serialVersionUID = 1L;
private Image image;
private Image[] images;
private ArrayList<String> name;

Mypanel() {
//this.image = Toolkit.getDefaultToolkit().getImage("C:\\Winter.JPG");
}

Mypanel(String parentURL,ArrayList<String> imgarray){
name = imgarray;
images = new Image[imgarray.size()];
for(int i=0;i<imgarray.size();i++){

System.out.println("imgs "+i+": "+imgarray.get(i));
if(imgarray.get(i)!=null){
images[i] = Toolkit.getDefaultToolkit().getImage(parentURL+"\\"+imgarray.get(i));
System.out.println("URL::"+parentURL+"\\"+imgarray.get(i));
}

}

}

public void paintComponent(Graphics g) {

System.out.println("################### Enter paintComponent : "+this.getToolTipText());
int x = 0;
int y = 0;
for(int i=0;i<images.length;i++){
//imgs[i] = Toolkit.getDefaultToolkit().getImage("C:\\"+);
//if(images[])
//this.paintComponent(g);
if(name.get(i)!=null){
if(x==0) x=20;
else if(x+90+80<400) x=x+90;
else {
x=20;
y=y+70;
}
System.out.println("@@@@@@@ x:"+x+",y:"+y+"  name = "+name.get(i)+" ");

g.drawImage(images[i], x, y,80,60, this);
}
}
}
}
分享到:
评论

相关推荐

    java Swing 文件批量上传 DEMO 源代码

    总的来说,这个Java Swing 文件批量上传DEMO涵盖了Java GUI编程、文件I/O、网络编程、多线程以及用户交互等多个方面,对于初学者来说,是一个很好的实践项目,可以帮助他们深入理解Java Swing的应用及文件上传的实现...

    java-swing编程小试牛刀之图片查看器

    - 继承自`JPanel`的`MainPanel`类实现了图片显示功能。为了正确显示图片,需要重写`paintComponent`方法。 - 在`paintComponent`方法中,首先调用`super.paintComponent(g)`以确保默认的绘制行为正常执行。 - ...

    java swing 多功能 聊天室

    在本项目“java swing 多功能 聊天室”中,开发者利用Swing构建了一个具备多种功能的聊天应用,包括发送表情、发送文件/文件夹等。这个聊天室不仅提供基本的文字交流,还拓展了更多的交互方式,为用户提供更丰富的...

    源代码文件夹.rar

    【压缩包子文件的文件名称列表】:虽然这里只有一个文件名——"源代码文件夹",但通常这样的文件夹会包含多个子文件和子文件夹,如.java源代码文件、资源文件(如图片、音频或配置文件)、编译后的.class文件,以及...

    swing 日期选择控件

    在提供的描述中提到了"包含库文件和资源文件",这意味着这个压缩包可能包含了一个完整的日期选择控件实现,包括必要的Java类库文件(.jar文件)以及可能的图片、样式表或本地化文本等资源文件。这些资源对于正确显示...

    用swing开发的地图导航和圆角Tooltip

    在Java的Swing框架下开发地图导航和圆角Tooltip是一项技术含量较高的任务,涉及到图形用户界面(GUI)设计、事件处理、自定义组件以及布局管理等多个方面。Swing是Java提供的一种轻量级的GUI库,它允许开发者创建...

    JAVA Swing实例讲解.zip

    在"JAVA Swing实例讲解.zip"这个压缩包中,你将找到一百多个精心设计的Swing小程序示例,这些实例涵盖了Swing的各种用法和技巧,是学习和理解Swing的好资料。通过这些实例,你可以深入学习如何使用Swing来构建复杂的...

    swing计算器

    6. **国际化和本地化(I18N)**:虽然这个例子没有涉及,但更专业的计算器可能需要支持多语言,这就需要用到Swing的I18N特性。 在实际代码中,我们可能会看到`day0401计算器王龙龙`这样的文件夹或类名,这可能是...

    java swing拼图游戏

    2. 图片切割:加载图片后,游戏会将其切割成多个小块,每个小块代表拼图的一部分。这个过程可能涉及到二维数组或者ArrayList来存储各个拼图块。开发者可能使用 `BufferedImage` 对象来存储切割后的图片,并计算每一...

    循环显示某文件下图片文件(jpg,jpeg,png,gif格式)

    3. **加载图片**:对于找到的每个图片文件,使用Java AWT或Swing的图像处理类,如`javax.imageio.ImageIO`,读取图片内容。`ImageIO.read()`方法可以读取多种格式的图片。 4. **显示图片**:将加载的图片显示到界面...

    基于Swing界面的单机版斗地主

    总结起来,这个项目涉及了Java Swing GUI设计、面向对象编程、游戏逻辑实现、AI设计、事件驱动编程、资源管理等多个方面,是学习和实践Java桌面应用开发的一个很好的实例。通过分析和理解这个项目,开发者可以提升...

    javaswing游戏开发-捕鱼达人

    例如,images文件夹中的图片资源可能包含了鱼的动画帧、游戏背景、图标等,通过ImageIO.read()方法读取并加载到内存中,然后在JPanel上使用Graphics2D对象进行绘制。 为了实现游戏逻辑,开发者需要掌握事件处理机制...

    java 本地图片浏览软件的源码

    2. GUI(图形用户界面)设计:可能使用Swing或JavaFX库来创建窗口和组件,如JFrame、JPanel、 JLabel等,用于显示图像和控制按钮。 3. 事件处理:学习如何通过监听器(如ActionListener)响应用户的操作,例如点击...

    swing编写我的电脑窗口

    综上所述,这个项目展示了如何利用Swing库构建一个功能完备的"我的电脑"窗口,涉及到文件系统操作、事件处理、UI设计等多个方面,是一个综合性的Java GUI编程实践。开发者可以通过学习这个项目,深入了解Swing的使用...

    java写的回合制游戏 oracle jdbc swing

    标题中的“java写的回合制游戏 oracle jdbc swing”表明这是一个基于Java编程语言开发的回合制游戏,其中使用了Oracle数据库作为后端存储,并且利用JDBC(Java Database Connectivity)技术进行数据交互。Swing是...

    这是一个用java实现的计算器 运用了swing 库 以及js的字符串计算方法

    在本文中,我们将深入探讨如何使用Java编程语言和Swing库构建一个计算器应用程序,并结合JavaScript的字符串计算方法。Swing是Java的一个图形用户界面(GUI)工具包,它提供了丰富的组件来创建桌面应用,而...

    java 雷电游戏 雷霆战机 swing学习.zip

    2. JPanel:用作游戏画面的容器,可以包含多个自定义的组件或子面板。 3. JLabel:可能用于显示游戏得分、生命值等信息。 4. JButton:设置开始、暂停、重置等游戏控制按钮。 5. KeyListener或ActionListener:实现...

    java2 Swing源码.zip

    1. **chapters**:这可能是一个包含多个章节的教程或文档的结构,每个章节都详细介绍了Swing的不同方面。可能涵盖了Swing组件的使用,如JButton、JLabel、JFrame、JPanel等,以及布局管理器如FlowLayout、...

    基于java swing 的文件管理器.zip

    在文件管理器中,可能会有多个JPanel,分别用于显示目录树、文件列表以及操作按钮等。 4. **JTree**: JTree组件用于展示层次结构数据,例如文件系统的目录结构。用户可以通过展开、折叠节点来浏览文件夹。 5. **...

    swing开发杂谈--初版本程序源码

    在Swing开发中,初版本的程序源码通常包含基础组件的使用、事件处理、布局管理等多个方面的内容。下面将详细讨论Swing开发中的关键知识点。 1. **基础组件**: Swing提供了丰富的组件库,如按钮(JButton)、文本框...

Global site tag (gtag.js) - Google Analytics