继承JFrame,只是初步
import java.awt.*;
import javax.swing.*;
import javax.swing.JFrame;
import java.awt.event.WindowListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class QQ extends JFrame //继承JFrame
{ }
class FixFrame extends JFrame
{
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
class ResizableFrame extends JFrame
{
this.setResizable(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
class LoginFrame extends FixFrame
{
LoginFrame() //构造函数
{
display();//调用display()函数
}
private JButton btn1;
private JButton btn2;
private JTextField jtf1;
private JPasswordField jpf1; //密码文本
private ImageIcon img1;
private JLabel background1;
private ImageIcon img2;
private JLabel background2;
private JLabel lab1;
private Font fnt;
private JLabel lab2;
private Image im1;
private ImageIcon im2;
private MyListener ltn;
private BtnAction act;
private BtnAction2 act2;
class MyListener extends WindowAdapter //适配器 是扩展 不需要覆盖WindowAdapter中的所有方法 功能代码较多
{
public void windowClosing(WindowEvent e)
{
System.out.println("windowClosing");
int res = JOptionPane.showConfirmDialog(null,"是否退出程序应用","提示", JOptionPane.YES_NO_OPTION); //弹出消息框
System.out.println("res =" + res);
if(res == 0)
{
System.out.println("退出");
System.exit(1);// 退出
System.out.println("退出1"); //不输出 因为exit先执行
}
else if(res == 1)
{
System.out.println("不退出");
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
//System.exit(1);// 退出
// 不退出
}
}
}
class BtnAction implements ActionListener //btn事件
{
public void actionPerformed(ActionEvent e)
{
System.out.println("actionPerformed");
if(jtf1.getText().equals("jk") && jpf1.getText().equals("jk"))
{
System.out.println("OK");
dispose();
(new JFrame("主窗口")).setVisible(true);
}
else
{
System.out.println("Error");
JOptionPane.showConfirmDialog(null,"密码错误","提示", JOptionPane.DEFAULT_OPTION);
}
}
}
class BtnAction2 implements ActionListener //内部类
{
public void actionPerformed(ActionEvent e)
{
Object o = e.getSource();
JButton b = (JButton)o; //强制类型转换
System.out.println("芝麻开门" + btn2.getText()); //类的成员/函数,可以在内部类中使用 if(b == btn2) //b.getSource == "重置"
{
jtf1.setText("");
jpf1.setText("");
}
}
}
public void display()
{
//JFrame frm = new JFrame(); //窗体
img1 = new ImageIcon("timg.gif"); //背景
background1 = new JLabel(img1);
this.getLayeredPane().add(background1, new Integer(Integer.MIN_VALUE));
//background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
background1.setBounds(0, 0, 425, 450);
img2 = new ImageIcon("33.gif");
background2 = new JLabel(img2);
this.getLayeredPane().add(background2, new Integer(Integer.MIN_VALUE));
background2.setBounds(0, 0, img2.getIconWidth(), img2.getIconHeight()); jtf1 = new JTextField(30); //文本
//jtf1.setColumns(10);
jtf1.setSize(200,35);
jtf1.setLocation(130,130);
jpf1 = new JPasswordField(30); //密码文本
//jpf1.setEchoChar('#'); 设置密码文本内容
jpf1.setSize(200,35);
jpf1.setLocation(130,180); lab1 = new JLabel("账号:"); //标题
fnt = new Font("Serief",Font.ITALIC+Font.BOLD,15);
lab1.setFont(fnt);
lab1.setBackground(Color.BLUE); //label的背景颜色
lab1.setOpaque(true); //label是否透明
lab1.setForeground(Color.YELLOW); //label前景色
lab2 = new JLabel("密码:");
lab1.setSize(50,30);
lab2.setSize(50,30);
lab1.setLocation(70,130);
lab2.setLocation(70,180);
btn1 = new JButton("登录");
btn1.setBounds(100,230,180,50);
im1 = (new ImageIcon("QQ.png")).getImage(); //图标
this.setIconImage(im1);
//ImageIcon im2 = new ImageIcon("77.png"); //图标
im2 = new ImageIcon("./77.png");
btn1.setIcon(im2);
this.setLayout(null); //布局--绝对布局
ltn = new MyListener(); //监听
this.addWindowListener(ltn);
act = new BtnAction(); //btn事件
btn1.addActionListener(act);
btn2 = new JButton("重置");
btn2.setBounds(300,230,100,50);
act2 = new BtnAction2();
btn2.addActionListener(act2);
//frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(425,325);
this.setLocation(700,500);
this.setTitle("QQ登录");
this.setResizable(false);
this.add(btn1);
this.add(btn2);
this.add(lab1);
this.add(lab2);
this.add(jpf1);
this.add(jtf1);
this.add(background1);
this.add(background2);
this.setVisible(true);
System.out.println("OK");
}
public static void main(String[] args)
{
LoginFrame Event1 = new LoginFrame();
System.out.println("OK");
}
}
class RegsterFrame extends FixFrame
{ }
class BackPswFrame extends FixFrame
{ }
class MainFrame extends ResizableFrame
{ }
继承JFrame,只是初步的更多相关文章
- Java Swing类 例子代码:将子类继承JFrame 并且接口按键监听ActionLisetener (将内容直接添加到JFrame不创建Contaniner)
package rom; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import ...
- C#---------------继承和多态初步
继承:在程序中,如果一个类A:类B,这种机制就是继承. 子类可以继承父类的所有内容(成员)吗? 解析: 1.私有成员(属性和方法) 2.构造函数 3.final修饰过的方法,子类不能进行重写 3.访问 ...
- 使用myeclipse开发java,解决java中继承JFrame类出现The type JFrame is not accessible due to restriction的问题
在java中创建窗体,导入了java中的JFrame类,之后会出现错误: Access restriction: The type QName is not accessible due to res ...
- Android-自定义控件-继承View与ViewGroup的初步理解
继承View需要走的流程是: 1.构造实例化, public ChildView(Context context, @Nullable AttributeSet attrs) 2.测量自身的高和宽on ...
- JAVA学习中Swing概述中的JFrame学习
package com.swing; import java.awt.Color;import java.awt.Container;import java.awt.event.WindowAdapt ...
- 转:二十七、Java图形化界面设计——容器(JFrame)
转:http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的, ...
- 二十七、Java图形化界面设计——容器(JFrame)
摘自http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计--容器(JFrame) 程序是为了方便用户使用的, ...
- Java图形化界面设计——容器(JFrame)
Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势,在命令提示符下运行的程序可以让我们了解java程序的基本知识体系结构 ...
- JAVA的继承,构造函数,窗体
import java.awt.*; import javax.swing.*; import javax.swing.JFrame; import java.awt.event.WindowList ...
随机推荐
- webservice接口国内手机号码归属地查询
操作步骤: 1.打开eclipse,新建web工程MobileCodeClient 2.打开运行窗口 右击工程名选择properties 切换到运行窗口,按图切换到相应的目录里 执行命令: wsdl2 ...
- 我从.net转别的语言的遭遇,现在貌似又要回头(一)
从2016年开始,作为公司最后的一个.net部门,被迫转向了php. php里面装得一手什么逼呢? 首先,你要来几本入门的书,linux,mysql,php基础语法,nginx或apache.哥那时候 ...
- easyUI tree点击文字展开节点
easyUI默认展开树的时候,点击节点前边的黑色小三角 ,这样操作存在不人性化的地方,在实际使用中由于老旧电脑的存在和大龄使用者的眼花经常点不准:因此要实现点击节点名称展开的方式,其实就是在展开事件上 ...
- 使用IGP和BGP的配合达到降低路由容量目的的实验与总结
概述 1.先说结论,通过eBGP协议,可以显著降低对非核心路由器的路由容量要求,因为核心路由器的数量明显少于非核心路由器,所以,通过此措施即联通网络,又降低设备要求,非常适宜大型网络. 2.因为网络规 ...
- js系列教程1-数组操作全解
全栈工程师开发手册 (作者:栾鹏) 快捷链接: js系列教程1-数组操作全解 js系列教程2-对象和属性全解 js系列教程3-字符串和正则全解 js系列教程4-函数与参数全解 js系列教程5-容器和算 ...
- 【特效】hover效果之四线动画
效果预览:http://www.gbtags.com/gb/rtreplayerpreview-standalone/3102.htm html: <div class="wrap&q ...
- 要让CLR挂掉的话……
http://rednaxelafx.iteye.com/blog/460893 (Disclaimer:如果需要转载请先与我联系. 作者:RednaxelaFX -> rednaxelafx. ...
- 用git上传代码到新浪云
新浪云空间是国内免费的一个空间,不过有限制很多. 申请新浪云需要新浪账号,注册略. 使用新浪账号去http://sae.sina.com.cn申请一个空间 选择新建应用 可以选择使用php项目 管理应 ...
- Django安装以及介绍
安装django说先需要安装python环境,因为他是依赖于python环境运行的 最好再安装pycharm,一款强大的开发工具,里面有各种开发工具的集成 在Windows先安装: 首先进入cmd命令 ...
- SpringMvc 关于 EXCEL
概述 我在使用SpingMvc 的EXCEL的发现传统的 AbstractJExcelView jexcel api已经过时 AbstractView poi Api 通过阅读官方文档发现建议我们使用 ...