jdk1.6中的新特性

    技术2022-05-11  124

    1、程序启动画面  1.6里面新增了启动画面的功能,  命令行方式:java -splash:图片名 java文件。图片格式为GIF, PNG, or JPEG格式,当第一个窗体启动时,启动画面就会消失。  jar方式:首先创建manifest.mf文件. 内容如下:         Manifest-Version: 1.0         Main-Class: HelloSplash         SplashScreen-Image: MyImage.png       打包jar文件:         jar -mcvf manifest.mf Splash.jar HelloSplash*.class MyImage.png      不用命令行运行启动画面:         java -jar Splash.jar    运用java.awt包内的SplashScreen类:        getSplashScreen()方法返回生成启动画面,如果没有image被创建,则返回null    其他的方法如:    getBounds() 返回启动画面的边界大小     getImageURL() 返回启动画面的图片url    getSize() 返回启动画面窗体的大小    isVisible() 启动画面是否显示  在应用程序启动之前,当启动画面加载后,可以改变显示的图片,有2个方法可以实现:     setImageURL():设置一个新显示图片的URL;     getGraphics():得到窗体的graphic内容(java.awt.Graphics),然后使用任何通常的graphical和Java2D的API去更新图片,因为这是一个Graphics2D的实例,            而不是简单的java.awt.Graphics.在你画上graphic内容后,可以调用SplashScreen的update()方法去画更新后的图片。  例子:  import javax.swing.*;   import java.awt.*;   import java.awt.geom.*;   import java.util.*;

       public class ExtendedSplash {     public static void main(String args[]) {       Runnable runner = new Runnable() {         public void run() {           Random random = new Random();           SplashScreen splash = SplashScreen.getSplashScreen();           Graphics2D g = (Graphics2D)splash.getGraphics();           Dimension dim = splash.getSize();           Color colors[] = {Color.RED, Color.ORANGE,              Color.YELLOW, Color.GREEN, Color.BLUE,              Color.MAGENTA};           for (int i=0; i<100; i++) {             g.setColor(colors[i % colors.length]);             g.fillRect(50, 50, dim.width-100, dim.height-100);             splash.update();             try {               Thread.sleep(250);             } catch (InterruptedException ignored) {             }           }           JFrame frame = new JFrame("Splash Me2");           frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);           JLabel label =              new JLabel("Hello, Splash", JLabel.CENTER);           frame.add(label, BorderLayout.CENTER);           frame.setSize(300, 95);           frame.setVisible(true);         }       };       EventQueue.invokeLater(runner);     }   }

      2、JTable的排序、高亮显示和过滤 排序:   抽象类RowSorter      实现排序的主要代码:      JTable table = new JTable(model);//生成指定模式的表格           RowSorter<TableModel> sorter =             new TableRowSorter<TableModel>(model);//生成一个RowSorter对应于表格模式           table.setRowSorter(sorter);//设置表格的RowSorter 如果想在排序时添加自己的动作,则可以对RowSorter实现RowSorterListener   实现的方法:void sorterChanged(RowSorterEvent e)

     过滤:   抽象类RowFilter    提供一个实现过滤的方法:boolean include(RowFilter.Entry<? extends M,? extends I> entry)    RowFilter提供6个方法生成过滤器:    *   andFilter(Iterable<? extends RowFilter<? super M,? super I>> filters)    *   dateFilter(RowFilter.ComparisonType type, Date date, int... indices)    *   notFilter(RowFilter<M,I> filter)    *   numberFilter(RowFilter.ComparisonType type, Number number, int... indices)    *   orFilter(Iterable<? extends RowFilter<? super M,? super I>> filters)    *   regexFilter(String regex, int... indices)      其中regexFilter中的参数regex是要过滤的文本,以"^"或者"$"开头,表示过滤是否以开regex开头或结尾。  


    最新回复(0)