免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1495 | 回复: 0
打印 上一主题 下一主题

关于applet还有gui的一些小问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-28 14:06 |只看该作者 |倒序浏览
    在写applet的过程中,我曾经在一些小问题上卡到了,这里列出来作为一个笔记。如果能为后来人提供一点帮助,那更是荣幸之至了。
    1:applet中经常会用一些资源,我们会把这些资源打到jar包中,那么在程序中该如何引用呢?
       比方说你要引用一个图片作为图标,那么使用
               
               
                     ImageIcon picture = new ImageIcon(getClass().getResource("demo.jpg"));
       然后再把demo.jpg打到jar包中就可以了。
   2:如何在applet中设置背景图片呢?
            p1 = new JPanel(){
                public   void   paint(Graphics   g){  
                    g.clearRect(0, 0, getSize().width, getSize().height);  
                    picture.paintIcon(this,   g,   0,   0); //这里就是把picture作为背景
                    paintComponents(g);  
            }  
            };   
    3:如何使FileDialog设置为保存的时候自动以某种后缀名保存呢?
    网上看到很多人用chooser来实现,我感觉异常麻烦,如果只需要保存一种格式的话,其实最简单的办法就是:
FileDialog fd=new FileDialog(f,"Save",FileDialog.SAVE);
fd.setVisible(true);
File f1 = new File(fd.getDirectory(),fd.getFile()+".jpg");
    直接在getFile后面加上后缀就可以了,然后把f1通过FileOutputStream写到文件中。
    4:如何实现全屏:
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferStrategy;
import javax.swing.*;
public class java_test implements KeyListener {
        JFrame frame;
        int hight, width;
        Graphics g;
        Image plaatje;
        BufferStrategy bufferStrategy;
      
      
      
        boolean running = true;
        JButton b1;
        int x = 0, y = 0;
        public java_test() {
        try{
        b1 = new JButton("OK");
   
                frame = new JFrame("MoveNL");
                frame.addWindowListener(new WindowAdapter() {
                        public void windowClosing(WindowEvent e) {
                                System.exit(0);
                        }
                });
                frame.setUndecorated(true);
                frame.setIgnoreRepaint(true);
                frame.setFocusable(true);
                frame.addKeyListener(this);
                GraphicsEnvironment gEnv = GraphicsEnvironment
                                .getLocalGraphicsEnvironment();
                GraphicsDevice gDev = gEnv.getDefaultScreenDevice();
                DisplayMode dplMode = new DisplayMode(1024, 768, 16,
                                DisplayMode.REFRESH_RATE_UNKNOWN);
                gDev.setFullScreenWindow(frame);
                gDev.setDisplayMode(dplMode);
                frame.setVisible(true);
                frame.createBufferStrategy(2);
                bufferStrategy = frame.getBufferStrategy();
                plaatje = Toolkit.getDefaultToolkit().getImage("Winter.jpg");
                render();
                frame.dispose();
        }catch(Exception exe){
            exe.printStackTrace();
        }
        }
        private void render() {
                while (running) {
                        try {
                                g = bufferStrategy.getDrawGraphics();
                                g.fillRect(0, 0, 1024, 768);
                                g.drawImage(plaatje, x, y, null);
                        } finally {
                                g.dispose();
                        }
                        bufferStrategy.show();
                }
        }
        public void keyTyped(KeyEvent e) {
                switch (e.getKeyChar()) {
                case 'q':
                        running = false;
                        break;
                }
                switch (e.getKeyChar()) {
                case 'z':
                        x++;
                        y++;
                        break;
                }
                return;
        }
        public void keyReleased(KeyEvent e) {
        }
        public void keyPressed(KeyEvent e) {
        }
        public static void main(String[] args) {
                new java_test();
        }
}
  5:如何通过一个按钮事件使该图片全屏,比方说通过
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class test  implements ActionListener{
public static void main(String[] args) {
new test();
}
public test(){
JFrame f1;
JButton b1;
f1 = new JFrame("test");
b1 = new JButton("OK");
f1.add(b1);
f1.setBounds(50, 50, 300, 300);
f1.setEnabled(true);
f1.setVisible(true);
b1.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
new java_test();
}
}
这个小程序来调用呢?
需用到以下代码:
public void actionPerformed(ActionEvent e) {
        new Thread(new Runnable(){
            @Override
            public void run() {
                // TODO Auto-generated method stub
               
                new java_test();
            }
        }).start();
    }
以上记得有点乱,准备写个图片浏览器把这些东东串起来。不过还是过完十一,陪完老爹老娘先。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/60509/showart_1269924.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP