JFame示例
//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 }