java實(shí)現(xiàn)點(diǎn)擊按鈕事件彈出子窗口
本文實(shí)例為大家分享了java實(shí)現(xiàn)點(diǎn)擊按鈕事件彈出子窗口的具體代碼,供大家參考,具體內(nèi)容如下
要求:
1、在父窗口中添加一個(gè)按鈕
2、點(diǎn)擊按鈕彈出子窗口
注意:這是JDK1.7版本
在JDK1.7之前,JFrame是不能直接添加子窗口的,要先將JInternalFrame添加到JDesktopPane中,再將JDesktopPane添加到父窗口內(nèi),完成這個(gè)操作。
(一)建立父類JFrame
package com.java.view;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JDesktopPane;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JMenuBar;
public class Testfrm extends JFrame {
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Testfrm frame = new Testfrm();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Testfrm() {
setTitle("\u7236\u7A97\u53E3");//標(biāo)題
setBounds(400, 300, 800, 600);//父窗口的坐標(biāo)和大小
getContentPane().setLayout(null);//自由布局
JButton bt = new JButton("\u6309\u94AE");//按鈕的變量名為bt
bt.setBounds(0, 0, 93, 23);//按鈕的位置坐標(biāo)和大小
getContentPane().add(bt);//按鈕添加到窗口中
bt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Testinterfrm testinterfrm=new Testinterfrm();//新建子窗口對(duì)象
testinterfrm.setVisible(true);//子窗口可見
getContentPane().add(testinterfrm);//子窗口添加到父窗口中
}
});
}
}
(二)建立子類JInternalFrame
package com.java.view;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JDesktopPane;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JMenuBar;
public class Testfrm extends JFrame {
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Testfrm frame = new Testfrm();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Testfrm() {
setTitle("\u7236\u7A97\u53E3");//標(biāo)題
setBounds(400, 300, 800, 600);//父窗口的坐標(biāo)和大小
getContentPane().setLayout(null);//自由布局
JButton bt = new JButton("\u6309\u94AE");//按鈕的變量名為bt
bt.setBounds(0, 0, 93, 23);//按鈕的位置坐標(biāo)和大小
getContentPane().add(bt);//按鈕添加到窗口中
bt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Testinterfrm testinterfrm=new Testinterfrm();//新建子窗口對(duì)象
testinterfrm.setVisible(true);//子窗口可見
getContentPane().add(testinterfrm);//子窗口添加到父窗口中
}
});
}
}
運(yùn)行結(jié)果:

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建類操作示例
這篇文章主要介紹了Java實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建類操作,結(jié)合完整示例形式分析了Java動(dòng)態(tài)創(chuàng)建類的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2020-02-02
IntelliJ IDEA中使用mybatis-generator的示例
這篇文章主要介紹了IntelliJ IDEA中使用mybatis-generator,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
使用Java獲取html中Select,radio多選的值方法
以下是對(duì)使用Java獲取html中Select,radio多選值的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-08-08
Spring Boot使用Druid進(jìn)行維度的統(tǒng)計(jì)和監(jiān)控
這篇文章主要介紹了Spring Boot使用Druid進(jìn)行維度的統(tǒng)計(jì)和監(jiān)控,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04
mybatis insert foreach循環(huán)插入方式
這篇文章主要介紹了mybatis insert foreach循環(huán)插入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
淺析Java中Apache BeanUtils和Spring BeanUtils的用法
這篇文章主要介紹了Java中Apache BeanUtils和Spring BeanUtils的用法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Java8深入學(xué)習(xí)系列(三)你可能忽略了的新特性
一提到Java 8就只能聽到lambda,但這不過是其中的一個(gè)而已,Java 8還有許多新的特性,有一些功能強(qiáng)大的新類或者新的用法,還有一些功能則是早就應(yīng)該加到Java里了,所以下面這篇文章主要給大家介紹了關(guān)于Java8中大家可能忽略了的一些新特性,需要的朋友可以參考下。2017-08-08
Java線程安全的常用類_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
在集合框架中,有些類是線程安全的,這些都是jdk1.1中的出現(xiàn)的。在jdk1.2之后,就出現(xiàn)許許多多非線程安全的類。 下面是這些線程安全的同步的類2017-06-06

