2016年8月7日 星期日

JAVA螢幕類

JAVA螢幕類



可關閉的視窗

package wwwwq;

import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;

public class sdfas extends Frame {
public sdfas(){

super("sdfas");
setSize(350,350);
setVisible(true);

this.addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) {
         System.exit(0);
        }
       });

}

public static void main(String[] args) {
new sdfas();

}

}

PS1:this.addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) {
         System.exit(0);
        }
       });
為設置關閉監聽器


顯示字於螢幕


package wwwwq;
import java.awt.*;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;

public class sdfas extends Frame implements Runnable{
Font messageFont;
String message;
public sdfas(){

super("4654s");
setSize(350,350);
setVisible(true);

this.addWindowListener(new WindowAdapter() {
      @Override
      public void windowClosing(WindowEvent e) {
       System.exit(0);
      }
     });
new Thread().start();
}

public static void main(String[] args) {
new sdfas();

}
    public void run(){
    messageFont =new Font("TimesRoman",Font.PLAIN,20);
   
    repaint();
   
    }
    public void paint(Graphics g){
    g.setFont(messageFont);
     g.setColor(Color.blue);
     message="shdshv";
    g.drawString(message, 5, 50);
    }
 
}

PS1:new Thread().start();為執行緒問題
PS2:g.setFont(messageFont);為設定字體

畫圖



package wwwwq;
import java.awt.*;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
public class fghgjasd extends Frame implements Runnable{
Font messageFont;
String message;
public fghgjasd(){
 
 super("4654s");
 setSize(350,350);
 setVisible(true);
 
 this.addWindowListener(new WindowAdapter() {
         @Override
         public void windowClosing(WindowEvent e) {
          System.exit(0);
         }
        });
 new Thread().start();
}

public static void main(String[] args) {
 new fghgjasd();
 
}
   public void run(){
    repaint();
    
   }
   public void paint(Graphics g){
   int []pgx={90,130,180,230,180,130,90};
   int []pgy={100,60,60,100,150,150,100};
    g.drawLine(10, 250, 50, 200);
    g.drawLine(50, 200, 120, 270);
    g.drawRect(90,50,150,100);
    g.fillRect(90, 200, 50, 50);
    g.drawOval(170, 65, 100, 60);
    g.drawArc(35,65,100,6,10,90);
    g.drawPolygon(pgx,pgy,7);
   
   }
  
}

圖片插入螢幕
package wwwwq;

import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;

public class abc {
public static void main(String[] args) throws IOException {
        JFrame frame = buildFrame();

        final BufferedImage image = ImageIO.read(new File("D:\\test\\jtest2\\Penguins.jpg"));

        JPanel pane = new JPanel() {
            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                g.drawImage(image, 0, 0, null);
            }
        };


        frame.add(pane);
    }


    private static JFrame buildFrame() {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setSize(200, 200);
        frame.setVisible(true);
        return frame;
    }


}
        
簡單動畫
package wwwwq;

import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;

public class abc extends Frame implements Runnable{
Font messageFont;
String message;
int a=0,b=160,aa=5,bb=0;
public abc(){

 super("4654s");
 setSize(350,350);
 setVisible(true);

 this.addWindowListener(new WindowAdapter() {
         @Override
         public void windowClosing(WindowEvent e) {
          System.exit(0);
         }
        });
 new Thread(this).start();
}
public static void main(String[] args)  {
 new abc();

     
}
   public void run(){
   
 
    while(true){
    repaint();
    a=a+aa;
    b=b+bb;
 
    try{Thread.sleep(250);}
    catch(InterruptedException e){;}
    }
   }
   public void paint(Graphics g){
    g.setColor(Color.red);
    g.fillOval(a, b, 50, 50);
   }

}

     

按鍵盤事件***** package wwwwq; import java.awt.AWTEvent; import java.awt.Color; import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.WindowConstants; public class abc extends Frame{ public abc(){ super("4654s"); setSize(350,350); setVisible(true); this.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); enableEvents(AWTEvent.KEY_EVENT_MASK); } public static void main(String[] args) { new abc(); } public void processKeyEvent(KeyEvent e){ if(e.getID()==KeyEvent.KEY_PRESSED){ System.out.println(":"+e.getSource()); System.out.println(":"+e.getID()); System.out.println(":"+e.getWhen()); System.out.println(":"+e.getKeyCode()); } if(e.getKeyCode()==KeyEvent.VK_A){ System.out.println("this is right"); } } } PS1:if(e.getKeyCode()==65){可用if(e.getKeyCode()==KeyEvent.VK_A){取代


        
點選框架效果 package wwwwq; import java.awt.AWTEvent; import java.awt.Color; import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.FocusEvent; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.WindowConstants; public class abc extends Frame{ public abc(){ super("4654s"); setSize(350,350); setVisible(true); this.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); enableEvents(AWTEvent.FOCUS_EVENT_MASK); } public static void main(String[] args) { new abc(); } public void processFocusEvent(FocusEvent e){ if(e.getID()==FocusEvent.FOCUS_GAINED){ System.out.println(":"+e.getSource()); System.out.println(":"+e.getID()); System.out.println(":"+e.isTemporary()); } } } PS1:點開框架會執行一次

     


滑鼠事件***** package wwwwq; import java.awt.AWTEvent; import java.awt.Color; import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.FocusEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.WindowConstants; public class abc extends Frame{ int x=100,y=100; public abc(){ super("4654s"); setSize(350,350); setVisible(true); this.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); enableEvents(AWTEvent.WINDOW_EVENT_MASK); enableEvents(AWTEvent.MOUSE_EVENT_MASK); new Thread().start(); } public static void main(String[] args) { new abc(); } public void processMouseEvent(MouseEvent e){ if(e.getID()==MouseEvent.MOUSE_PRESSED){ x=e.getX(); y=e.getY(); } if(x>0){ System.out.println(":"+e.getX()); } } public void run(){ while(true){ repaint(); try{Thread.sleep(250);} catch(InterruptedException e){;} } } public void paint(Graphics g){ BufferedImage image = null; try { image = ImageIO.read(new File("D:\\test\\jtest2\\Penguins.jpg")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } g.drawImage(image, x, y,50,50, this); } } PS1:點擊螢幕後要縮小在拉出來(未解決此問題)
PS2:解決方法如下例

滑鼠事件成功******* package wwwwq; import java.awt.AWTEvent; import java.awt.Color; import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.FocusEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.WindowConstants; public class abc extends Frame{ int x=100,y=100; public abc(){ super("4654s"); setSize(350,350); setVisible(true); this.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); enableEvents(AWTEvent.WINDOW_EVENT_MASK); enableEvents(AWTEvent.MOUSE_EVENT_MASK); t.start(); //new Thread().start(); } public static void main(String[] args) { new abc(); } public void processMouseEvent(MouseEvent e){ if(e.getID()==MouseEvent.MOUSE_PRESSED){ x=e.getX(); y=e.getY(); } if(x>0){ System.out.println(":"+e.getX()); } } Thread t = new Thread() { public void run(){ while(true){ repaint(); try{Thread.sleep(250);} catch(InterruptedException e){;} } } }; public void paint(Graphics g){ BufferedImage image = null; try { image = ImageIO.read(new File("D:\\test\\jtest2\\Penguins.jpg")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } g.drawImage(image, x, y,50,50, this); } } PS1:因為new Thread().start();根本讀不到 只要改成 Thread t = new Thread() 把RUN{}來就可以了


滑鼠拖動

package wwwwq;
import java.awt.AWTEvent; import java.awt.Color; import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.FocusEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.WindowConstants; public class abc extends Frame{ int x=100,y=100; int flag=0; public abc(){ super("4654s"); setSize(350,350); setVisible(true); this.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); enableEvents(AWTEvent.WINDOW_EVENT_MASK); enableEvents(AWTEvent.MOUSE_EVENT_MASK); new Thread().start(); } public static void main(String[] args) { new abc(); } public void processMouseEvent(MouseEvent e){ if(e.getID()==MouseEvent.MOUSE_PRESSED){ if(((e.getX()>=x)&&(e.getX()<=(x+50)))&&((e.getY()>=y)&&(e.getY()<=(y+40)))) flag = 1; } if((e.getID()==MouseEvent.MOUSE_RELEASED) && (flag==1)){ x=e.getX(); y=e.getY(); flag=0; } } public void run(){ while(true){ repaint(); try{Thread.sleep(250);} catch(InterruptedException e){;} } } public void paint(Graphics g){ BufferedImage image = null; try { image = ImageIO.read(new File("D:\\test\\jtest2\\Penguins.jpg")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } g.drawImage(image, x, y,50,50, this); } } PS1:點擊螢幕後要縮小在拉出來(未解決此問題)


背景音樂 package wwwwq; import java.applet.Applet; import java.applet.AudioClip; import java.awt.AWTEvent; import java.awt.Color; import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.FocusEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.WindowConstants; public class abc extends Frame implements Runnable{ int a=100,b=100; int da1=-20,db1=-20; int flag=0; int test=0; Image bufferPage=null; AudioClip sound; private String fileName; private Object alin; public abc(){ super("4654s"); setSize(350,350); setVisible(true); this.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); sound =Applet.newAudioClip(getClass().getResource("alin.wav")); sound.loop(); enableEvents(AWTEvent.WINDOW_EVENT_MASK); enableEvents(AWTEvent.MOUSE_EVENT_MASK); enableEvents(AWTEvent.KEY_EVENT_MASK); new Thread().start(); } public static void main(String[] args) { new abc(); } public void processMouseEvent(MouseEvent e){ if(e.getID()==MouseEvent.MOUSE_PRESSED){ if(((e.getX()>=a)&&(e.getX()<=(a+250)))&&((e.getY()>=b)&&(e.getY()<=(b+250)))) flag = 1; } if((e.getID()==MouseEvent.MOUSE_RELEASED) && (flag==1)){ a=e.getX(); b=e.getY(); flag=0; } } public void processKeyEvent(KeyEvent e){ if(e.getID()==KeyEvent.KEY_PRESSED){ System.out.println(":"+e.getKeyCode()); } if(e.getKeyCode()==37){ test=1; a=a+da1; } if(e.getKeyCode()==38){ test=2; } if(e.getKeyCode()==39){ test=3; } if(e.getKeyCode()==40){ test=4; } } public void run(){ while(true){ repaint(); try{Thread.sleep(250);} catch(InterruptedException e){;} } } public void update(Graphics g){ paint(g); } public void paint(Graphics g){ Graphics bufferg; if(bufferPage==null) bufferPage=createImage(350,350); bufferg=bufferPage.getGraphics(); BufferedImage image = null; try { image = ImageIO.read(new File("D:\\test\\jtest2\\Penguins.jpg")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } bufferg.drawImage(image, a, b,250,250, this); bufferg.dispose(); g.drawImage(bufferPage, a, b,50,50, this); } } PS1:JAVA只支援AIFF、AU、WAV檔(MP3轉WAV網站:http://media.io/progress.jsp;jsessionid=253F65736E2C5E04CE3E9E5A3CA0F407) PS2:需將alin.wav拉到wwwwq這個workspace(path:C:\Users\USER\workspace\wwwwq\src\wwwwq)



離開程式按鈕
https://tw.answers.yahoo.com/question/index?qid=20090509000016KK00974


沒有留言:

張貼留言