JAVA关于窗体JFrame的关闭事件 10
我之前有提问了一个问题:新手学JAVA,有看到这样一段代码F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);其中这个F就是...
我之前有提问了一个问题:
新手学JAVA,有看到这样一段代码
F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
其中这个F就是JFrame F=new JFrame();
这里有个问题的是,这个EXIT_ON_CLOSE,这个是一个常量,我并没有在方法或类成员里指定这个。
这种系统自带的都不需要定义是吗?(VB中都需要再定义常量及常量值)
如下是别人的回答:
这个常量是定义在JFrame这个类里面的,所以你使用的时候才会使用JFrame.EXIT_ON_CLOSE
现在的问题是:
我不是已经JFrame F=new JFrame()了吗?说明F已经指向了一个对象,为什么是JFrame.EXIT_ON_CLOSE
而不是F.EXIT_ON_CLOSE呢 展开
新手学JAVA,有看到这样一段代码
F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
其中这个F就是JFrame F=new JFrame();
这里有个问题的是,这个EXIT_ON_CLOSE,这个是一个常量,我并没有在方法或类成员里指定这个。
这种系统自带的都不需要定义是吗?(VB中都需要再定义常量及常量值)
如下是别人的回答:
这个常量是定义在JFrame这个类里面的,所以你使用的时候才会使用JFrame.EXIT_ON_CLOSE
现在的问题是:
我不是已经JFrame F=new JFrame()了吗?说明F已经指向了一个对象,为什么是JFrame.EXIT_ON_CLOSE
而不是F.EXIT_ON_CLOSE呢 展开
3个回答
2014-12-01
展开全部
//设置关闭后直接退出
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呢?
展开全部
EXIT_ON_CLOSE是JFrame类的静态常量,可以直接用类名调用,用F.EXIT_ON_CLOSE也可以调用,但是会有warning,提示JFrame.EXIT_ON_CLOSE是静态量,应该用一个静态方法声明
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
他这个应该是所谓的静态常量吧,是类和其子类共享的,F.EXIT_ON_CLOSE 应该也没错吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询