实现简单的窗口
java提供的JFrame类的实例就是一个底层的容器,JFrame类是Container类的间接子类。当需要一个窗口是可以使用JFrame类或其子类创建一个对象。窗口也是一个容器,可以往容器里面添加一些组件(例如:文本框,单选按钮,下滑列表等等)。需要注意的是,窗口默认被系统添加到显示器的屏幕上,所以不能把窗口添加到另外一个容器当中
话不多说,上一个实现简单窗口的代码。
package JFrame;
import java.awt.*;
import javax.swing.*;
public class Test1 {
public static void main(String[] args) {
JFrame window1 = new JFrame("夏提的窗口");
window1.setBounds(500,100,400, 300); //设置窗口的初始位置以及窗口的大小;
Container con = window1.getContentPane(); //创建一个容器类对象;
con.setBackground(Color.pink); //设置背景颜色;
window1.setVisible(true); //显示窗口是可见的; 这个方法默认是不可见的;
window1.setResizable(true); //设置窗口可随意调整大小;
window1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
上一个骚气的粉色窗口
往窗口添加菜单
JMenuBar类负责创建一个菜单条,也就是用来放置菜单,JMenu类负责创建菜单,JMenuItem类负责创建一个菜单项。话不多说,直接上代码。
package JFrame;
import java.awt.*;
import javax.swing.*;
class WindowMenu extends JFrame{
JMenuBar menubar; //菜单条
JMenu menuSports; //体育菜单;
JMenuItem soccerItem,BasketballItem; //在体育菜单里面创建菜单项;
JMenu menuChinaBall; //中国球类菜单;
JMenuItem PingPangItem,VolleyBallItem; //在中国球类菜单里面创建一个乒乓球和排球菜单项;
public WindowMenu(){};
public WindowMenu(String s,int x,int y,int w,int h) {
setLocation(x,y); //设置默认位置;
setSize(w,h); //设置默认大小;
setVisible(true); //设置成可见类型的;
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBackground(Color.pink); //设置背景颜色;
init(s);
}
void init(String s) {
setTitle(s); //设置窗口的标题;
menubar = new JMenuBar();
menuSports = new JMenu("体育菜单"); //用menuSports做一个根菜单;
menuSports.setIcon(new ImageIcon("sport.png"));
soccerItem = new JMenuItem("足球");
soccerItem.setIcon(new ImageIcon("soccer2.png")); //设置菜单项的图标;
BasketballItem = new JMenuItem("篮球");
BasketballItem.setIcon(new ImageIcon("basketball.png"));
menuChinaBall = new JMenu("中国国球类");
PingPangItem = new JMenuItem("乒乓球");
PingPangItem.setIcon(new ImageIcon("pingpang.png"));
VolleyBallItem = new JMenuItem("排球");
VolleyBallItem.setIcon(new ImageIcon("volleyball.png"));
menuSports.add(soccerItem); //在体育菜单里面放置足球菜单项;
menuSports.add(BasketballItem); //在体育菜单里面放置篮球菜单项;
menuSports.addSeparator(); //添加分割线;
menuSports.add(menuChinaBall); //在菜单里面在放置一个菜单;
menuChinaBall.add(PingPangItem); //在中国球类菜单里面放置乒乓球菜单项;
menuChinaBall.add(VolleyBallItem);//在中国球类菜单里面放置排球菜单项;
menubar.add(menuSports); //在菜单条里面放置体育菜单;
setJMenuBar(menubar); //在窗口里面放置menubar菜单条;
}
}
public class Test2 {
public static void main(String[] args) {
WindowMenu menu = new WindowMenu("夏提的菜单窗口",200,100,600,500);
}
}
文本文件的实现
在这些的基础上,我们只需要往容器里面添加一个文本框用来输入文本,然后就可以实现一个简单的记事文本。
package JFrame;
import java.awt.*;
import javax.swing.*;
//设置一个简单的文本文件;菜单条里放置 文件 编辑 查看 三个菜单;
//文件菜单包括 新建 打开 保存 退出 等菜单项;
//编辑菜单包括 复制 粘贴 删除 撤销;
//查看菜单包括 缩放菜单,它的菜单项为(放大,缩小),状态栏,自动换行菜单项;
//还有就是文本框;
class Text extends JFrame{
JMenuBar menubar; //菜单条 它是用来放置菜单;
JMenu file /*文件菜单*/,edit /*编辑菜单*/,check /*查看菜单*/;
JMenu zoom; //查看菜单的子菜单 缩放菜单;
JMenuItem newfile,openfile,savefile,exitfile; //这是文件菜单的菜单项;
JMenuItem copy,stick,delete,rovoke; //这是编辑菜单的菜单项;
JMenuItem max,min,status,shifter; //缩放菜单的菜单项,依次别为 放大,缩小,状态栏,自动换行;
JTextArea text; //文本框;
public Text() {
setVisible(true); //设置成可见;
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //退出功能;
init();
}
void init(){
menubar = new JMenuBar();
//首先放置文本文件的三个最基本的菜单;
file = new JMenu("文件");
edit = new JMenu("编辑");
check = new JMenu("查看");
//然后往菜单里面放置菜单项;
//首先放置文件菜单的菜单项;
newfile = new JMenuItem("新建");
openfile = new JMenuItem("打开");
savefile = new JMenuItem("保存");
exitfile = new JMenuItem("退出");
file.add(newfile);
file.add(openfile);
file.add(savefile);
file.add(exitfile);
//然后开始放置编辑菜单的菜单项;
copy = new JMenuItem("复制");
stick = new JMenuItem("粘贴");
rovoke = new JMenuItem("撤销");
delete = new JMenuItem("删除");
edit.add(copy);
edit.add(stick);
edit.add(rovoke);
edit.add(delete);
//然后开始放置查看菜单的菜单项;
zoom = new JMenu("缩放"); //这里是查看菜单的子菜单缩放;
max = new JMenuItem("放大"); //这是子菜单缩放的放大菜单项;
min = new JMenuItem("缩小"); //这是子菜单缩放的缩小菜单项;
zoom.add(max);
zoom.add(min);
status = new JMenuItem("状态栏"); //查看菜单的菜单项;
shifter = new JMenuItem("自动换行");
check.add(zoom); //把子菜单缩放放到查看菜单里面;
check.add(status); //放置菜单项 状态栏;
check.add(shifter);//放置菜单项 自动换行;
//最后把三个菜单放到菜单条里面;
menubar.add(file);
menubar.add(check);
menubar.add(edit);
//然后把菜单条放到窗口里面;
setJMenuBar(menubar);
//然后放置文本框;
text = new JTextArea();
add(text);
}
}
public class Test4 {
public static void main(String[] args) {
Text text = new Text();
text.setTitle("夏提的记事本");
Container con = text.getContentPane();
text.setBounds(200, 300, 600, 500); //设置记事本的初始位置以及大小;
}
}