importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.KeyEvent;importjava.awt.event.KeyListener;importjavax.swing.JButton;importjavax.swing.JEditorPane;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JTextField;publicclassWindowTestextendsJFrameimplementsActionListener,KeyListener{privatestaticfinallongserialVersionUID=1L;/***主方法*/publicstaticvoidmain(String[]args){WindowTestwin=newWindowTest();}/***下面是具體實(shí)現(xiàn)*/JTextFieldtext;JButtonbutton;JEditorPanetextArea;publicWindowTest(){super("測試窗體");text=newJTextField(15);text.addKeyListener(this);JPanelp1=newJPanel();p1.add(newJLabel("輸入字符:"));p1.add(text);button=newJButton("清除");button.addActionListener(this);p1.add(button);p1.setBounds(5,5,220,100);textArea=newJEditorPane();textArea.setBounds(1,1,216,200);JPanelp2=newJPanel();p2.add(newJLabel("顯示字符:"));p2.add(textArea);p2.setBounds(5,115,340,220);JPanelp3=newJPanel();p3.add(p1);p3.add(p2);add(p3);setBounds(160,60,400,300);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}@OverridepublicvoidkeyPressed(KeyEvente){}@OverridepublicvoidkeyReleased(KeyEvente){if(e.getKeyCode()==KeyEvent.VK_ENTER){textArea.setText("");}else{Stringstr=text.getText();textArea.setText(str);}}@OverridepublicvoidkeyTyped(KeyEvente){}@OverridepublicvoidactionPerformed(ActionEvente){text.setText("");textArea.setText("");}}
為企業(yè)提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)站優(yōu)化、成都營銷網(wǎng)站建設(shè)、競價(jià)托管、品牌運(yùn)營等營銷獲客服務(wù)。創(chuàng)新互聯(lián)擁有網(wǎng)絡(luò)營銷運(yùn)營團(tuán)隊(duì),以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗(yàn)助力企業(yè)精準(zhǔn)獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術(shù)實(shí)力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營銷”三大難題,同時(shí)降低了營銷成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認(rèn)可!
代碼如下,注意注釋:
import java.awt.Container;
import java.awt.event.*;
import javax.swing.*;
public class ShortTest2 extends JFrame implements ActionListener {
JButton jb1;
JPanel j1;
public ShortTest2() {
Container contentPane = this.getContentPane();
j1 = new JPanel();
jb1 = new JButton("Draw");
jb1.addActionListener(this);
j1.add(jb1);
contentPane.add(j1, "North");
}
public static void main(String[] args) {
ShortTest2 m = new ShortTest2();
m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
m.setSize(600, 370);
m.setLocationRelativeTo(null);
m.setVisible(true);
}
public void actionPerformed(ActionEvent ae) {
//主要是這里,按鈕一按就執(zhí)行下面的代碼
//在這里按鈕按下時(shí)新生成一個(gè)frame就行了
JFrame jf = new JFrame();
jf.setSize(600, 370);
jf.setVisible(true);
JOptionPane.showMessageDialog(null, "Hello World!");
}
}
importjava.awt.*;importjava.awt.event.*;importjava.awt.geom.*;importjava.util.*;importjavax.swing.*;/***多線程,小球演示.打開Windows任務(wù)管理器,可看到線程變化??伤阉鞯剑瑀un()方法/.start()**du:程序技巧體會:所謂產(chǎn)生一個(gè)小球,即是new其類對象,其屬性攜帶畫小球的坐標(biāo)、顏色、所在容器等參數(shù)。**一個(gè)類,屬性用來作為參數(shù)容器用,方法.完成功能。**///運(yùn)行類publicclassBouncePress{//publicstaticvoidmain(String[]args){JFrameframe=newBouncePressFrame();//生成窗口。執(zhí)行構(gòu)造。-----業(yè)務(wù)邏輯。frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//similarto//window//listenerframe.show();}}classBouncePressFrameextendsJFrame{privateBallPressCanvascanvas;publicBouncePressFrame(){setSize(600,500);//窗口大小setTitle("BounceBall");ContainercontentPane=getContentPane();//Swing的窗口不能直接放入東西,只能在其上的ContentPane上放。canvas=newBallPressCanvas();//生成一個(gè)新面板。-----canvascontentPane.add(canvas,BorderLayout.CENTER);//窗口中心加入該面板。JPanelbuttonPanel=newJPanel();//再生成一個(gè)新面板。----buttonPanel//調(diào)用本類方法addButton。addButton(buttonPanel,"Start",//生成一個(gè)按鈕"Start"---加入面板buttonPanelnewActionListener(){//|------按鈕綁上action監(jiān)聽器。publicvoidactionPerformed(ActionEventevt){//|小球容器對象的addBall(Thread.NORM_PRIORITY-4,Color.black);//事件處理時(shí),執(zhí)行---addBall()方法。---產(chǎn)生小球(參數(shù)對象)---加入List中---開始畫球。}});//按一次,addBall()一次---產(chǎn)生一個(gè)新小球---加入List中---開始畫此新小球。//---畫球線程BallPressThread的run()---小球(參數(shù)對象).move()---每次畫時(shí),先移動,再判斷,再畫。//---BallPressCanvas類的canvas對象.paint()---自動調(diào)BallPressCanvas類的paintComponent(Graphics//g)方法。//---該方法,從List中循環(huán)取出所有小球,第i個(gè)球,---調(diào)該小球BallPress類//.draw()方法---調(diào)Graphics2D方法畫出小球。--使用color/addButton(buttonPanel,"Express",newActionListener(){publicvoidactionPerformed(ActionEventevt){addBall(Thread.NORM_PRIORITY+2,Color.red);}});addButton(buttonPanel,"Close",newActionListener(){publicvoidactionPerformed(ActionEventevt){System.exit(0);}});contentPane.add(buttonPanel,BorderLayout.SOUTH);}publicvoidaddButton(Containerc,Stringtitle,ActionListenerlistener){JButtonbutton=newJButton(title);//生成一個(gè)按鈕。c.add(button);//加入容器中。button.addActionListener(listener);//按鈕綁上action監(jiān)聽器。}/**主要業(yè)務(wù)方法。*/publicvoidaddBall(intpriority,Colorcolor){//生成小球(參數(shù)對象)BallPressb=newBallPress(canvas,color);//生成BallPress對象,攜帶、初始化//畫Ball形小球,所需參數(shù):所在容器組件,所需color--black/red.//小球加入List中。canvas.add(b);//面板canvas的ArrayList中加入BallPress對象。BallPressThreadthread=newBallPressThread(b);//生成畫小球的線程類BallPressThread對象。傳入BallPress對象(攜帶了畫球所需//容器、color參數(shù))。thread.setPriority(priority);thread.start();//callrun(),ballstarttomove//畫球線程開始。---BallPressThread的run()---小球(參數(shù)對象).move()---先移動,再畫。canvas.paint---BallPressCanvas類的}}//畫球的線程類。classBallPressThreadextendsThread{privateBallPressb;publicBallPressThread(BallPressaBall){b=aBall;}//畫球開始。publicvoidrun(){try{for(inti=1;i自動繪制面板,且自動調(diào)paintComponent(Graphics//g)方法,---重寫該方法,繪制面板(及其上組件)。//作用2)該類對象屬性ArrayListballs---兼作小球(參數(shù)對象)的容器。classBallPressCanvasextendsJPanel{privateArrayListballs=newArrayList();publicvoidadd(BallPressb){balls.add(b);//向ArrayList中添加球。當(dāng)按下按鈕,添加多個(gè)球時(shí),都保存在這個(gè)List中。}//重寫了javax.swing.JComponent的paintComponent()方法。//paint()方法自動調(diào)用該方法。publicvoidpaintComponent(Graphicsg){super.paintComponent(g);Graphics2Dg2=(Graphics2D)g;for(inti=0;i=canvas.getWidth()){//小球右邊已經(jīng)到畫板右邊。x=canvas.getWidth()-15;dx=-dx;//開始反向運(yùn)動。}if(y=canvas.getHeight()){//小球已到畫板頂。y=canvas.getHeight()-15;dy=-dy;}canvas.paint(canvas.getGraphics());//畫出面板對象canvas----(及其上所有組件)////.paint()方法,自動調(diào)用}}/*importjava.awt.*;importjava.awt.event.*;importjava.awt.geom.*;importjava.util.*;importjavax.swing.*;*//***單線程,小球演示搜索不到,run()方法/.start()*//*publicclassBounce{publicstaticvoidmain(String[]args){JFrameframe=newBounceFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//similarto//window//listenerframe.show();}}不懂的再問啊。。。