setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE) package Login
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import java.awt.event.MouseAdapter
import java.awt.event.MouseEvent
import java.net.URL
import javax.swing.ComboBoxModel
import javax.swing.DefaultComboBoxModel
import javax.swing.JLabel
import javax.swing.JPasswordField
import javax.swing.JRadioButton
import javax.swing.JTextField
import javax.swing.ImageIcon
import javax.swing.JButton
import javax.swing.JComboBox
import javax.swing.JOptionPane
import javax.swing.WindowConstants
import javax.swing.SwingUtilities
/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class NewJFrame extends javax.swing.JFrame {
private JLabel jLabel_School_logo
private JLabel jLabel_user_name
private JLabel jLabel_passwd
private JButton jButton_reg
private JButton jButton_login
private JPasswordField jPasswordField
private JTextField jTextField_user_name
private JLabel jLabel_title
private int student_statue=0
private JComboBox jComboBox1
private int manager_statue=0
/**
*
*/
/**
*
*/
/**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
NewJFrame inst = new NewJFrame()
inst.setTitle("教室管理系统登录")
inst.setLocationRelativeTo(null)
inst.setVisible(true)
}
})
}
public NewJFrame() {
super()
initGUI()
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE)
getContentPane().setLayout(null)
{
jLabel_School_logo = new JLabel()
getContentPane().add(jLabel_School_logo)
jLabel_School_logo.setBounds(0, 0, 86, 84)
ImageIcon logo=new ImageIcon("img/log.jpg")
jLabel_School_logo.setIcon(logo)
}
{
jLabel_title = new JLabel()
getContentPane().add(jLabel_title)
jLabel_title.setBounds(86, 0, 447, 84)
ImageIcon title=new ImageIcon("img/title.jpg")
jLabel_title.setIcon(title)
}
{
jLabel_user_name = new JLabel()
getContentPane().add(jLabel_user_name)
jLabel_user_name.setText("\u5b66\u53f7\uff1a")
jLabel_user_name.setBounds(155, 131, 51, 31)
jLabel_user_name.setFont(new java.awt.Font("叶根友毛笔行书2.0版",0,12))
}
{
jTextField_user_name = new JTextField()
getContentPane().add(jTextField_user_name)
jTextField_user_name.setBounds(199, 135, 151, 23)
}
{
jLabel_passwd = new JLabel()
getContentPane().add(jLabel_passwd)
jLabel_passwd.setText("\u5bc6\u7801\uff1a")
jLabel_passwd.setBounds(152, 185, 51, 31)
jLabel_passwd.setFont(new java.awt.Font("叶根友毛笔行书2.0版",0,12))
}
{
jPasswordField = new JPasswordField()
getContentPane().add(jPasswordField)
jPasswordField.setBounds(199, 189, 151, 23)
}
{
jButton_login = new JButton()
getContentPane().add(jButton_login)
jButton_login.setText("\u767b\u5f55")
jButton_login.setBounds(199, 235, 68, 23)
jButton_login.setFont(new java.awt.Font("叶根友毛笔行书2.0版",0,12))
}
{
jButton_reg = new JButton()
getContentPane().add(jButton_reg)
jButton_reg.setText("\u6ce8\u518c")
jButton_reg.setBounds(282, 235, 68, 23)
jButton_reg.setFont(new java.awt.Font("叶根友毛笔行书2.0版",0,12))
jButton_reg.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
jButton_regMouseClicked(evt)
}
})
}
{
ComboBoxModel jComboBox1Model =
new DefaultComboBoxModel(
new String[] { "学生/老师登录", "管理员登录" })
jComboBox1 = new JComboBox()
getContentPane().add(jComboBox1)
jComboBox1.setModel(jComboBox1Model)
jComboBox1.setBounds(199, 90, 152, 23)
jComboBox1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jComboBox1ActionPerformed(evt)
}
})
}
pack()
this.setSize(549, 334)
} catch (Exception e) {
//add your error handling code here
e.printStackTrace()
}
}
private void jComboBox1ActionPerformed(ActionEvent evt) {
if(jComboBox1.getSelectedIndex()==0)
{
jLabel_user_name.setText("学号:")
}
else
{
jLabel_user_name.setText("帐号:")
}
}
private void jButton_regMouseClicked(MouseEvent evt) {
if(jComboBox1.getSelectedIndex()==1)
{
JOptionPane.showMessageDialog(NewJFrame.this, "管理员帐号不提供注册!", "", JOptionPane.DEFAULT_OPTION)
}
else
{
reg register=new reg()
register.setTitle("注册")
register.setLocationRelativeTo(this)
register.setVisible(true)
}
}
}
//设置setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE)在另一个方法,你怎么用到你这个F呢?
import java.awt.*import java.awt.event.*
import javax.swing.*
class jdemo {
public static int showDialog(Component c) {
int dialogButton = JOptionPane.YES_NO_OPTION
int dialogResult = JOptionPane.showConfirmDialog (null, "Are you sure you want to quit?","Tips",dialogButton)
return dialogResult
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
final JFrame f = new JFrame("Closeing Windows Form Test")
f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE)
f.addWindowListener( new WindowAdapter() {
@Override
public void windowClosing(WindowEvent we) {
if(showDialog(f)==JOptionPane.NO_OPTION) return // 如果按了取消,则不退出
System.exit(0)// 否则退出
}
} )
f.setSize(300,200)
f.setLocationByPlatform(true)
f.setVisible(true)
}
})
}
}
效果图
你想要触发的是窗口关闭事件windowClosed, 那么你需要调用dispose方法,对窗口进行销毁.
修改代码如下
public void windowClosing(WindowEvent e) {System.out.println("windowClosing--窗体正在关闭事件")
//f.setVisible(false)//隐藏窗口
f.dispose()//销毁窗口-->这行代码会触发windowClosed事件
}
还有其他一些细节的修改,参考下面的代码
import java.awt.*import java.awt.event.*
//类名不要写一个小写字母,推荐写一个完整的名词来作为类名
public class EventDemo {
public static void main(String[] args) {
Frame f = new Frame("hello")
f.setSize(300, 300)
f.setLocation(300, 200)
//f.setVisible(true)//不要先显示窗口, 先显示了窗口,就看不到"窗口打开事件"了
f.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent e) {
System.out.println("windowOpened--窗体打开事件")
}
@Override
public void windowIconified(WindowEvent e) {
System.out.println("windowIconified--窗体图标化事件")
}
@Override
public void windowDeiconified(WindowEvent e) {
System.out.println("windowDeiconifie--窗体取消图标化事件")
}
@Override
public void windowDeactivated(WindowEvent e) {
System.out.println("windowDeactivated--窗体停用事件")
}
@Override
public void windowClosing(WindowEvent e) {
System.out.println("windowClosing--窗体正在关闭事件")
//f.setVisible(false)//隐藏窗口
f.dispose()//销毁窗口
}
@Override
public void windowClosed(WindowEvent e) {
System.out.println("windowClosed--窗体关闭事件")
System.exit(0)
}
@Override
public void windowActivated(WindowEvent e) {
System.out.println("windowActivated--窗体激活事件")
}
})
f.setVisible(true)//窗口显示
}
}