📦 归档笔记 — 原创建于 WizNote,仅作归档展示;观点以当年为准,非最新。

JFame示例

创建时间2019-03-29最后修改2019-04-08原位置/程序员成长之旅/Java学习/笔记/字数1474
目录:程序员成长之旅/Java学习/笔记

//1 创建一个窗口 并且对其背景颜色设置成绿色 import javax.swing.; import java.awt.; public class StudyJFame{ public static void main(String[] args) { myJFame study = new myJFame("标题"); } } class myJFame extends JFrame {//创建一个继承与JFame类的类 public myJFame(String title){//设置其构造器 以方便在创建对象的时候直接启动这些内容 setSize(700,500);//设置窗口大小长为700 宽为500 setTitle(title);//设置标题 setVisible(true);//设置窗口为可见 getContentPane().setBackground(Color.GREEN);//要对窗口进行设定,不能直接对JFrame进行设置,需要先获取其容器,对其容器进行设定才是正解 设置背景颜色为绿色 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } }

21

1 //1 创建一个窗口 并且对其背景颜色设置成绿色 2 import

javax . swing . * ; 3 import

java . awt . * ; 4 5 public

class

StudyJFame { 6 7

public

static

void

main ( String [] args ) { 8

myJFame

study

=

new

myJFame ( "标题" ); 9 } 10 11 } 12 class

myJFame

extends

JFrame { //创建一个继承与JFame类的类 13

public

myJFame ( String

title ){ //设置其构造器 以方便在创建对象的时候直接启动这些内容 14

setSize ( 700 , 500 ); //设置窗口大小长为700 宽为500 15

setTitle ( title ); //设置标题 16

setVisible ( true ); //设置窗口为可见 17

getContentPane (). setBackground ( Color . GREEN ); //要对窗口进行设定,不能直接对JFrame进行设置,需要先获取其容器,对其容器进行设定才是正解 设置背景颜色为绿色 18 19

setDefaultCloseOperation ( WindowConstants . EXIT_ON_CLOSE ); 20 } 21 }

//2 创建一个窗口并将其背景颜色设为可见 并且画一个小的正方形出来 class myJFame extends JFrame {//创建一个继承与JFame类的类 public myJFame(String title){//设置其构造器 以方便在创建对象的时候直接启动这些内容 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setVisible(true); setSize(700,500); getContentPane().setBackground(Color.black); JPanel contenPane = new JPanel(); contenPane.setSize(30,30); contenPane.setBackground(Color.green); add(contenPane); getContentPane().add(contenPane); setLayout(null); } }

18

1 //2 创建一个窗口并将其背景颜色设为可见 并且画一个小的正方形出来 2 class

myJFame

extends

JFrame { //创建一个继承与JFame类的类 3

public

myJFame ( String

title ){ //设置其构造器 以方便在创建对象的时候直接启动这些内容 4

setDefaultCloseOperation ( WindowConstants . EXIT_ON_CLOSE ); 5

setVisible ( true ); 6

setSize ( 700 , 500 ); 7

getContentPane (). setBackground ( Color . black ); 8 9

JPanel

contenPane

=

new

JPanel (); 10

contenPane . setSize ( 30 , 30 ); 11

contenPane . setBackground ( Color . green ); 12 13

add ( contenPane ); 14

getContentPane (). add ( contenPane ); 15

setLayout ( null ); 16 17 } 18 } //3 显示键盘按下以及鼠标按下动作的窗体 import javax.swing.; import java.awt.; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; public class StudyJFame implements MouseMotionListener,KeyListener{ private JFrame frame; private JLabel tf; String ch = ""; public static void main(String[] args) { StudyJFame jf = new StudyJFame(); jf.go(); } private void go(){ frame = new JFrame();//创建一个JFrame的窗体 Container contenPane = frame.getContentPane();//将coutenPane设置为frame的内置容器 frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置按关闭按钮执行的操作 contenPane.add(new JLabel("get mouse and keyboard event"),BorderLayout.NORTH);//添加一个显示内容为"get mouse and keyboard event" 此类标签默认为左对齐的 这里设置其为北布局 tf = new JLabel();//提前声明一个鼠标或者键盘显示的标签 contenPane.add(tf,BorderLayout.SOUTH); //把tf传入JFrame的容器 设置为南布局 frame.addMouseMotionListener(this);//添加鼠标触发器 frame.addKeyListener(this);//添加键盘触发器 frame.setSize(300,300);;//设置JFrame的窗体大小 frame.setVisible(true);//设置窗口为可见 } @Override public void keyTyped(KeyEvent e) {//有字符按下时会在keyPressed后出发 System.out.println("2"); int charcode = e.getKeyCode(); ch="有按键按下2"; if(charcode==KeyEvent.VK_SHIFT) {ch = "shift2";} if(charcode==KeyEvent.VK_CONTROL){ch = "control2";} } @Override public void keyPressed(KeyEvent e) {//键盘按下 System.out.println("1"); int charcode = e.getKeyCode(); if(charcode==KeyEvent.VK_SHIFT){ch = "shift1";} if(charcode==KeyEvent.VK_CONTROL){ch = "control1";} } @Override public void keyReleased(KeyEvent e) {//键盘抬起 ch="有按键松开"; System.out.println("3"); } @Override public void mouseDragged(MouseEvent e) { String s = "鼠标拖动的坐标:X="+e.getX()+"\tY="+e.getY()+"KEY:"+ch; tf.setText(s);//更新南布局的标签内容 } @Override public void mouseMoved(MouseEvent e) { String s = "鼠标移动的坐标:X="+e.getX()+"\tY="+e.getY()+"KEY:"+ch; tf.setText(s);//更新南布局的标签内容 } }

x

1 //3 显示键盘按下以及鼠标按下动作的窗体 2 import

javax . swing . * ; 3 import

java . awt . * ; 4 import

java . awt . event . KeyEvent ; 5 import

java . awt . event . KeyListener ; 6 import

java . awt . event . MouseEvent ; 7 import

java . awt . event . MouseMotionListener ; 8 9 public

class

StudyJFame

implements

MouseMotionListener , KeyListener { 10

private

JFrame

frame ; 11

private

JLabel

tf ; 12

String

ch

=

"" ; 13 14

public

static

void

main ( String [] args ) { 15

StudyJFame

jf

=

new

StudyJFame (); 16

jf . go (); 17 } 18

private

void

go (){ 19

frame

=

new

JFrame (); //创建一个JFrame的窗体 20

Container

contenPane

=

frame . getContentPane (); //将coutenPane设置为frame的内置容器 21

frame . setDefaultCloseOperation ( WindowConstants . EXIT_ON_CLOSE ); //设置按关闭按钮执行的操作 22

contenPane . add ( new

JLabel ( "get mouse and keyboard event" ), BorderLayout . NORTH ); //添加一个显示内容为"get mouse and keyboard event" 此类标签默认为左对齐的 这里设置其为北布局 23

tf

=

new

JLabel (); //提前声明一个鼠标或者键盘显示的标签 24

contenPane . add ( tf , BorderLayout . SOUTH ); //把tf传入JFrame的容器 设置为南布局 25 26

frame . addMouseMotionListener ( this ); //添加鼠标触发器 27

frame . addKeyListener ( this ); //添加键盘触发器 28 29

frame . setSize ( 300 , 300 );; //设置JFrame的窗体大小 30

frame . setVisible ( true ); //设置窗口为可见 31 32 } 33 34

@Override 35

public

void

keyTyped ( KeyEvent

e ) { //有字符按下时会在keyPressed后出发 36

System . out . println ( "2" ); 37

int

charcode

=

e . getKeyCode (); 38

ch

"有按键按下2" ; 39

if ( charcode

KeyEvent . VK_SHIFT ) { ch

=

"shift2" ;} 40

if ( charcode

KeyEvent . VK_CONTROL ){ ch

=

"control2" ;} 41 } 42 43

@Override 44

public

void

keyPressed ( KeyEvent

e ) { //键盘按下 45

System . out . println ( "1" ); 46

int

charcode

=

e . getKeyCode (); 47

if ( charcode

KeyEvent . VK_SHIFT ){ ch

=

"shift1" ;} 48

if ( charcode

KeyEvent . VK_CONTROL ){ ch

=

"control1" ;} 49 } 50 51

@Override 52

public

void

keyReleased ( KeyEvent

e ) { //键盘抬起 53

ch

"有按键松开" ; 54

System . out . println ( "3" ); 55 } 56 57

@Override 58

public

void

mouseDragged ( MouseEvent

e ) { 59

String

s

=

"鼠标拖动的坐标:X=" + e . getX () + "\tY=" + e . getY () + "KEY:" + ch ; 60

tf . setText ( s ); //更新南布局的标签内容 61 } 62 63

@Override 64

public

void

mouseMoved ( MouseEvent

e ) { 65

String

s

=

"鼠标移动的坐标:X=" + e . getX () + "\tY=" + e . getY () + "KEY:" + ch ; 66

tf . setText ( s ); //更新南布局的标签内容 67 } 68 }