Java

我是一个有着五年经验的3D动画师,一直服务于游戏行业。由于一些复杂的原因,这项制作技术已经在我的职业生涯中,退居二线。以28岁的高龄毅然决然选择了编程,作为我新职业发展的突破口,并且信心十足。目前还在学习中,晚上利用Swing基础知识,写了一个小程序,传上来,记录一下自己的起点。

package my;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.util.ArrayList;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;

import af.swing.AfPanel;
import af.swing.image.AfImageView;
import af.swing.layout.AfRowLayout;

public class MyFrame extends JFrame
{
      AfImageView AI = new AfImageView();                                                       //创建一个AfImage用来显示大图
      List<ThumbButton> LI = new ArrayList<>();                                                 //创建一个泛型的动态数组
      public MyFrame (String titel)                                                                      
      {
          super(titel);
          
          JPanel JP = new JPanel ();                                                                        //创建一个顶层面板,用来容纳所有控件
          this.setContentPane(JP);                                                                           //设置顶层面板类型
          JP.setLayout(new BorderLayout());                                                             //给顶层面板创建新的边框布局
          
          AI.setBackground(Color.BLACK);                                                               //给大图设置一个背景色
          AI.setScaleType(AfImageView.FIT_CENTER);                                              //给大图设置一个显示尺寸
          AI.setBorder(BorderFactory.createMatteBorder(1, 0, 0, 0, Color.LIGHT_GRAY));  //给大图创建一个边框
          JP.add(AI,BorderLayout.CENTER);                                                             //将大图添加至顶层面板,并设置在其内部显示的位置
          
          AfPanel AP = new AfPanel();                                                                     //创建一个AfPanel用来显示预览列表                                      
          AP.layout(new AfRowLayout(10));                                                               //创建列表显示为数
          AP.padding(10).preferredHeight(80);                                                           //设置列表间的间距和显示高度
          JP.add(AP,BorderLayout.PAGE_START);
          
          ThumbClikListener TCL = new ThumbClikListener();                                 //创建获取用户点击事件
          
          File ID = new File("images");                                                                     //创建资源文件变量,并获取地址
          File [] IS = ID.listFiles();                                                                              //使用listFiles方法获取资源文件变量(包含地址)
          for (File F : IS)                                                                                           //循环访问文件组里面的每个文件
          {
              ThumbButton B = new ThumbButton(F);                                             //创建ThumbButton类的对象变量并设置文件
              AP.add(B,"auto");                                                                                  //给顶层面板添加ThumbButton变量
              LI.add(B);                                                                                              //给泛型的动态数组添加ThumbButton变量
              
              B.setPreferredSize(new Dimension(80,80));                                            //设置ThumbButton的显示尺寸;给景色;边框颜色
              B.setBgColor(Color.WHITE);
              B.setBorder(BorderFactory.createLineBorder(Color.WHITE));
              B.addMouseListener(TCL);                                                                     //给ThumbButton添加点击事件
          }
      }
      private class ThumbClikListener extends MouseAdapter                          //创建鼠标点击事件
      {

        @Override
        public void mouseClicked(MouseEvent e) 
        {
               ThumbButton TB = (ThumbButton)e.getSource();
               
               for (ThumbButton B:LI)                                                 
               {
                   if (B == TB )                                                                                      
                   {
                       B.setBorder(BorderFactory.createLineBorder(new Color (0x1E9FF),3));
                   }
                   else 
                   {
                       B.setBorder(BorderFactory.createLineBorder(Color.WHITE,3));
                   }
               }
               AI.setImage(TB.image);
        }
          
      }
}

图像查看器
昨晚刚刚写的图像查看器

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值