java新手笔记26 Frame
0.Calculater
package com.yfs.javase; import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.Panel;
import java.awt.TextField;
//布局管理器
public class Calculater extends Frame {
//设置2个panel
Panel pn = new Panel();
Panel pc = new Panel(); Button[] buts = new Button[16];
TextField text = new TextField(20);
//菜单
MenuBar bar = new MenuBar();
Menu m1 = new Menu("编辑");
Menu m2 = new Menu("查看");
Menu m3 = new Menu("帮助"); public Calculater() {
super("山寨计算器");
setLocation(200, 150); //布局管理 GridLayout 表格
pc.setLayout(new GridLayout(4,4,5,5));
//添加到north面板
pn.add(text);
//添加but
for (int i = 0; i < 10; i++) {
buts[i] = new Button(String.valueOf(i));
pc.add(buts[i]);
}
//运算符
String[] opt = {"+","-","*","/","="};
for (int i = 10; i < opt.length + 10; i++) {
buts[i] = new Button(opt[i - 10]);
pc.add(buts[i]);
}
//向窗体添加面板
add(pn, BorderLayout.NORTH);
add(pc);
pack();//窗体包裹组件
setResizable(false);
//添加菜单项
MenuItem m11 = new MenuItem("复制");
MenuItem m12 = new MenuItem("粘贴");
MenuItem m21 = new MenuItem("标准型");
MenuItem m22 = new MenuItem("科学型");
MenuItem m23 = new MenuItem("数字分组");
MenuItem m31 = new MenuItem("帮助主题");
MenuItem m32 = new MenuItem("关于计算器"); m1.add(m11);
m1.add(m12);
m2.add(m21);
m2.add(m22);
m2.addSeparator();
m2.add(m23);
m3.add(m31);
m3.add(m32); //设置菜单
bar.add(m1);
bar.add(m2);
bar.add(m3);
//菜单添加到窗体
setMenuBar(bar); // 默认隐藏 设置显示
setVisible(true); } public static void main(String[] args) {
new Calculater();
} }
1.Frame
package com.yfs.javase; import java.awt.Button;
import java.awt.Checkbox;
import java.awt.Choice;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField; public class FrameDemo1 { /**
* awt
*/
public static void main(String[] args) {
//创建窗体对象
Frame frame = new Frame();
//设置位置
frame.setLocation(200, 150);
//设置窗体大小
frame.setSize(400, 300);
//设置布局
frame.setLayout(new FlowLayout());
//按钮
Button but = new Button();
but.setLabel("新建"); Label la = new Label();
la.setText("软件开发");
Checkbox ch = new Checkbox();//单选框
TextArea area = new TextArea(6,20);//多行文本框
TextField text = new TextField(15);//单行文本框
Choice choice = new Choice();
choice.add("clazz1");
choice.add("clazz2");
choice.add("clazz3"); //添加窗体
frame.add(but);
frame.add(la);
frame.add(ch);
frame.add(area);
frame.add(text);
frame.add(choice); //默认隐藏 设置显示
frame.setVisible(true); } }
2.JFrame
package com.yfs.javase; import java.awt.FlowLayout; import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField; public class FrameDemo2 { /**
* swing
*/
public static void main(String[] args) {
//创建窗体对象
JFrame frame = new JFrame();
//设置位置
frame.setLocation(200, 150);
//设置窗体大小
frame.setSize(400, 300);
frame.setLayout(new FlowLayout());
JButton but = new JButton();
but.setText("新建"); JLabel la = new JLabel("软件");
JCheckBox ch = new JCheckBox();
JTextArea area = new JTextArea(8,20);
JTextField text = new JTextField(15);
JComboBox box = new JComboBox();
box.addItem("clazz1");
box.addItem("clazz2");
box.addItem("clazz3"); frame.add(but);
frame.add(la);
frame.add(ch);
frame.add(area);
frame.add(text);
frame.add(box);
//默认隐藏 设置显示
frame.setVisible(true); } }
3.自己管理窗体布局
package com.yfs.javase; import java.awt.Button;
import java.awt.Checkbox;
import java.awt.Choice;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField; public class FrameDemo3 extends Frame { public FrameDemo3() {
//调用父类无参数的构造方法
//super("我的程序");
setTitle("还是我的程序");
// 创建窗体对象
//Frame frame = new Frame();
// 设置位置
this.setLocation(200, 150);
// 设置窗体大小
setSize(400, 300); // 按钮
Button but1 = new Button("新建");
Button but2 = new Button("打开");
Button but3 = new Button("保存");
Button but4 = new Button("退出");
setLayout(null);
//自己管理窗体布局
//指定大小 位置
but1.setLocation(10, 50);
but1.setSize(50, 30); but2.setLocation(70, 50);
but2.setSize(50, 30); but3.setLocation(130, 50);
but3.setSize(50, 30); but4.setLocation(190, 50);
but4.setSize(50, 30); // 添加到窗体
add(but1);
add(but2);
add(but3);
add(but4); // 默认隐藏 设置显示
setVisible(true); } public static void main(String[] args) {
new FrameDemo3();
} }
4.布局管理器
package com.yfs.javase; import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Checkbox;
import java.awt.Choice;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
//布局管理器
public class FrameDemo4 extends Frame { public FrameDemo4() { super("borderlayout管理器");
setBounds(200, 150, 500, 400);
Button b1 = new Button("北");
Button b2 = new Button("南");
Button b3 = new Button("西");
Button b4 = new Button("东");
Button b5 = new Button("中");
Button b6 = new Button("发");
//布局管理 frame默认 BorderLayout布局管理器
//setLayout( new BorderLayout()); add(b1, BorderLayout.NORTH);
add(b2, BorderLayout.SOUTH);
add(b3, BorderLayout.WEST);
add(b4, BorderLayout.EAST);
//add(b5,BorderLayout.CENTER);
add(b5);
add(b6); // 默认隐藏 设置显示
setVisible(true); } public static void main(String[] args) {
new FrameDemo4();
} }
5.FlowLayout
package com.yfs.javase; import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Checkbox;
import java.awt.Choice;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
//布局管理器
public class FrameDemo5 extends Frame { public FrameDemo5() { super("Flowlayout管理器");
setBounds(200, 150, 500, 400);
Button b1 = new Button("新建");
Button b2 = new Button("打开");
Button b3 = new Button("保存");
Button b4 = new Button("关闭"); //布局管理 FlowLayout
setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 20)); add(b1);
add(b2);
add(b3);
add(b4); // 默认隐藏 设置显示
setVisible(true); } public static void main(String[] args) {
new FrameDemo5();
} }
6.GridLayout 表格
package com.yfs.javase; import java.awt.Color;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.util.Random;
//布局管理器
public class FrameDemo6 extends Frame {
//属性
private Label[] labels = new Label[16]; public FrameDemo6() { super("gridlayout管理器");
setBounds(200, 150, 400, 400);
Random ran = new Random(); //布局管理 GridLayout 表格
setLayout(new GridLayout(4,4,1,1));
//创建label
for (int i = 0; i < labels.length; i++) {
labels[i] = new Label(String.valueOf(i + 1), Label.CENTER);
//添加背景色
//labels[i].setBackground(Color.CYAN);
labels[i].setBackground(new Color(ran.nextInt(256),ran.nextInt(256),ran.nextInt(256)));
//设置前景色
labels[i].setForeground(Color.WHITE); //添加到窗体
add(labels[i]);
} // 默认隐藏 设置显示
setVisible(true); } public static void main(String[] args) {
new FrameDemo6();
} }
7.容器Panel
package com.yfs.javase; import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Checkbox;
import java.awt.Choice;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Window; //容器
public class FrameDemo7 { // public FrameDemo7() {
//
// super("Flowlayout管理器");
// setBounds(200, 150, 500, 400);
// Button b1 = new Button("新建");
// Button b2 = new Button("打开");
// Button b3 = new Button("保存");
// Button b4 = new Button("关闭");
//
// //布局管理 FlowLayout
// //setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 20));
//
// add(b1);
// add(b2);
// add(b3);
// add(b4);
//
// // 默认隐藏 设置显示
// setVisible(true);
//
// } public static void main(String[] args) {
Frame f = new Frame("容器实例");
f.setBounds(200, 150, 300, 300);
f.setVisible(true);
// 不能独立显示 管理组件
Panel p = new Panel();
p.setBounds(200, 150, 100, 100);
p.setBackground(Color.CYAN);
p.setVisible(true); p.add(new Button("javase"));
f.add(p, BorderLayout.EAST);
// Window win = new Window(null);
// win.setBounds(200, 150, 300, 300);
// Button but = new Button("软件开发");
// win.add(but);
// win.setVisible(true); } }
java新手笔记26 Frame的更多相关文章
- JAVA自学笔记26
JAVA自学笔记26 1.网络编程 1)用来实现网络互联的不同计算机上运行的程序可以进行数据交换 2)网络模型一般泛指 OSI:(Open System Interconnection)开放系统互联参 ...
- java新手笔记27 监听器类
1.外部类监听 package com.yfs.javase; import java.awt.Button; import java.awt.FlowLayout; import java.awt. ...
- JAVA新手笔记 Intent对象和Bundle对象
Intent对象和Bundle对象 功能主要是在 MainActivity中定义了2个EditText,当用户输入内容,把他传入到第二个活动, 自己新创的活动中,MyActivity中 放在MainA ...
- java新手笔记34 连接数据库
1.JdbcUtil package com.yfs.javase.jdbc; import java.sql.Connection; import java.sql.DriverManager; i ...
- java新手笔记33 多线程、客户端、服务器
1.Mouse package com.yfs.javase; public class Mouse { private int index = 1; private boolean isLive = ...
- java新手笔记32 jdk5新特性
1.for package com.yfs.javase; import java.awt.Color; import java.util.Calendar; import java.util.Has ...
- java新手笔记31 集合实现类
Person类: package com.yfs.javase; import java.util.Date; public class Person implements Comparable { ...
- java新手笔记30 集合
1.set/list package com.yfs.javase; import java.util.ArrayList; import java.util.Collection; import j ...
- java新手笔记29 读取文件
1.读取文件 package com.yfs.javase; import java.io.FileInputStream; import java.io.FileReader; import jav ...
随机推荐
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATI
转载:http://my.oschina.net/u/242764/blog/375909 当我们安装好Genymotion后,把Android运用部署到上面调试时,console控制台会报错:Ins ...
- Android的事件处理
1 android事件处理概述 不论是桌面应用还是手机应用程序,面对最多的就是用户,经常需要处理用户的动作-------也就是需要为用户动作提供响应,这种为用户动作提供响应的机制就是事件处理.andr ...
- MSSQLSERVER数据库- 慎用SELECT INTO复制表
很多时候我们习惯于用SELECT INTO复制一个表或表结构,因为它方便,快捷,而且在某些情况下效率比INSERT INTO 效率要高一些.但是要注意: SELECT INTO 复制表或表结构的时候, ...
- 解决ecshop在线客户点击无法唤醒QQ问题
找到default/library/page_footer.lbi中找到QQ代码的相应位置,然后你会发现之前模板里面为什么QQ点击不能对话,是因为QQ客服安装包中的JS代码有的可能是比较旧的代码了. ...
- maven依赖传递关系
一.maven 依赖传递规则 举个例子,比如A依赖B,B依赖C,那么A也是依赖C的.A是对B的直接依赖,A对C是传递依赖 ①.最短路劲原则 如,路劲一:A依赖B,B依赖C,C依赖D(1.0.0): 路 ...
- SCOM随笔
1.在监控群集资源时,安装完agent后,在代理管理-agent属性中选中“允许此代理充当代理并发现其他计算机上的托管对象” 如果监控DC的话,也要选中该选项
- careercup-C和C++ 13.2
13.2 浅析哈希表和STL map.对比哈希表和STL map.哈希表是怎么实现的?如果输入数据规模不大, 我们可以使用什么数据结构来代替哈希表. 解答 对比哈希表和STL map 在哈希表中,实值 ...
- 20 Best Drag and Drop jQuery Plugins--reference
reference from:http://dizyne.net/20-best-drag-drop-jquery-plugins/ jQuery has done a great job repla ...
- Web安全测试周末公开班计划5月24、25日开课,欢迎报名参加!
Web安全测试周末公开班计划5月24.25日开课,欢迎报名参加! 课程大纲参考: http://gdtesting.com/product.php?id=107 报名咨询: 黎小姐 QQ:241448 ...
- PHP在ubuntu中编译安装
关于怎么获取php源码和解压就不再说了. 编译的参数为: ./configure --prefix=/opt/php --with-bz2 --with-mcrypt --with-mhash --w ...