实验三图形用户界面设计汽院含答案Word文档下载推荐.docx

上传人:b****7 文档编号:21837212 上传时间:2023-02-01 格式:DOCX 页数:21 大小:102.04KB
下载 相关 举报
实验三图形用户界面设计汽院含答案Word文档下载推荐.docx_第1页
第1页 / 共21页
实验三图形用户界面设计汽院含答案Word文档下载推荐.docx_第2页
第2页 / 共21页
实验三图形用户界面设计汽院含答案Word文档下载推荐.docx_第3页
第3页 / 共21页
实验三图形用户界面设计汽院含答案Word文档下载推荐.docx_第4页
第4页 / 共21页
实验三图形用户界面设计汽院含答案Word文档下载推荐.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

实验三图形用户界面设计汽院含答案Word文档下载推荐.docx

《实验三图形用户界面设计汽院含答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验三图形用户界面设计汽院含答案Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。

实验三图形用户界面设计汽院含答案Word文档下载推荐.docx

东,南,西,北,中。

Frame默认的布局管理器。

GridLayout(网格布局管理器):

规则的矩阵

CardLayout(卡片布局管理器):

选项卡

GridBagLayout(网格包布局管理器):

非规则的矩阵

3.类JFrame是java.awt.Frame的扩展版本,该版本添加了对JFC/Swing组件架构的支持,常用方法如下:

1)JFrame()该构造方法可以创建一个无标题的窗口,窗口的默认布局为BorderLayout布局。

2)JFrame(Strings)该构造方法可以创建一个标题为s的窗口,窗口的默认布局为BorderLayout布局。

3)publicvoidsetBounds(inta,intb,intwidth,intheight)窗口调用该方法可以设置出现在屏幕上时的初始位置是(a,b),即距屏幕左面a个像素、距屏幕上方b个像素;

窗口的宽是width,高是height。

4)publicvoidsetSize(intwidth,intheight)设置窗口的大小,窗口在屏幕出现是默认位置是(0,0)。

5)publicvoidsetVisible(booleanb)设置窗口是可见还是不可见,窗口默认是不可见的。

6)publicvoidsetResizable(booleanb)设置窗口是否可调整大小,窗口默认是可调整大小的。

7)publicvoidsetDefaultCloseOperation(intoperation)设置用户在此窗体上发起"

close"

时默认执行的操作。

8)publicvoidsetLocationRelativeTo(Componentc)设置窗口相对于指定组件的位置。

如果组件当前未显示,或者c为null,则此窗口将置于屏幕的中央。

实验内容

1.图形用户界面设计程序(ArtFont.java)

要求:

设计一个文字字体设置窗体,在该窗体中可以设置要显示文字的字体内容,包括字体名称、字体大小、粗体和斜体等字体风格。

并模拟在不同操作系统下的显示效果。

程序的最终显示效果如下:

提示:

整个窗体继承于JFrame,采用BorderLayout布局。

在窗体中添加三个JPanel:

northPanel、centerPanel和southPanel,分别位于窗体的北部、中部和南部,然后分别在各个面板中添加其它组件,并逐步完善程序功能。

请按以下步骤完成程序设计:

1)新建ArtFont类,该类用于显示主界面。

其主要代码如下:

publicclassArtFontextendsJFrame{

JComboBoxfontType;

//字体样式下拉框,

JComboBoxfontSize;

//字体大小下拉框

JComboBoxwindowStyle;

//窗体样式下拉框

JCheckBoxboldBx;

//粗体按钮

JCheckBoxitalicBx;

//斜体按钮

JButtoncolorBtn;

//颜色按钮;

String[]fontNames;

//字体名称;

String[]fontSizes;

//字体大小;

JLabellabel;

//输入提示标签;

JTextFieldinputText;

//文字输入框;

JTextAreatxtArea;

//文字显示区;

JPanelnorthPanel;

//字体设置;

JPanelcenterPanel;

//显示效果区

JPanelsouthPanel;

//样式设置

Fontfont;

intboldStyle,italicStyle,underlineStyle;

intfontSizeStyle;

StringfontNameStyle;

ColorcolorStyle=Color.black;

//设置字体的默认颜色为黑色;

String[]style={"

默认显示效果"

"

Windows显示效果"

Unix显示效果"

};

publicArtFont(){

super("

字体设置"

);

//设置默认字体

boldStyle=0;

italicStyle=0;

underlineStyle=0;

fontSizeStyle=10;

fontNameStyle="

宋体"

;

font=newFont(fontNameStyle,boldStyle+italicStyle,fontSizeStyle);

northPanel=getNorthPanel();

centerPanel=getCenterPanel();

southPanel=getSouthPanel();

//设置容器;

Containercontainer=getContentPane();

container.setLayout(newBorderLayout());

【补充代码】//将northPanel添加到窗体的北部

【补充代码】//将centerPanel添加到窗体的北部

【补充代码】//将southPanel添加到窗体的北部

setSize(500,300);

【补充代码】//将窗体位于屏幕的中央

setVisible(true);

}

privateJPanelgetNorthPanel(){

JPanelpanel=newJPanel();

returnpanel;

privateJPanelgetCenterPanel(){

privateJPanelgetSouthPanel(){

}

publicstaticvoidmain(Stringargs[]){

ArtFontartFont=newArtFont();

artFont.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

2)根据ArtFont类代码和程序界面图设计北部面板northPanel:

privateJPanelgetNorthPanel(){

JPanelpanel=newJPanel();

【补充代码…】

returnpanel;

}

3)根据ArtFont类代码和程序界面图设计中部面板centerPanel:

privateJPanelgetCenterPanel(){

4)根据ArtFont类代码和程序界面图设计南部面板southPanel:

privateJPanelgetSouthPanel(){

//获得系统默认字体

GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();

fontNames=ge.getAvailableFontFamilyNames();

fontType=newJComboBox(fontNames);

//设置字体大小

fontSizes=newString[63];

for(inti=0;

i<

fontSizes.length;

i++){

fontSizes[i]=Integer.toString(i+10);

}

5)调试、编译和运行程序,并显示正确界面。

答案:

importjavax.swing.*;

importjava.awt.*;

container.add(northPanel,BorderLayout.NORTH);

//【补充代码】//将northPanel添加到窗体的北部

container.add(centerPanel,BorderLayout.CENTER);

//【补充代码】//将centerPanel添加到窗体的北部

container.add(southPanel,BorderLayout.SOUTH);

//【补充代码】//将southPanel添加到窗体的北部

//【补充代码】//将窗体位于屏幕的中央

setLocationRelativeTo(null);

label=newJLabel("

输入"

JLabel.LEFT);

//设置输入提示标签

panel.add(label);

//设置文本输入框;

inputText=newJTextField(10);

panel.add(inputText);

//inputText.addActionListener(this);

boldBx=newJCheckBox("

粗体"

panel.add(boldBx);

italicBx=newJCheckBox("

斜体"

panel.add(italicBx);

colorBtn=newJButton("

颜色"

panel.add(colorBtn);

panel.setLayout(newBorderLayout());

txtArea=newJTextArea();

panel.add(txtArea,BorderLayout.CENTER);

GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();

fontNames=ge.getAvailableFontFamilyNames();

//获得系统中所有字体的名字;

fontType=newJComboBox(fontNames);

fontType.setEditable(false);

fontType.setMaximumRowCount(10);

panel.add(fontType);

fontSizes=newString[63];

for(inti=0;

i<

63;

i++)

{fontSizes[i]=Integer.toString((i+10));

fontSize=newJComboBox(fontSizes);

fontSize.setEditable(false);

fontSize.setMaximumRowCount(10);

panel.add(fontSize);

windowStyle=newJComboBox(style);

panel.add(windowStyle);

2.日历应用程序设计

编写一个应用程序,设计一个窗体,该窗体为BorderLayout布局。

窗体的中心添加一个Panel容器:

Panel容器的布局是7行7列的GridLayout布局,Panel容器中放置49个标签,用来显示日历。

窗口的北面添加一个Panel容器,其布局是FlowLayout布局,Panel容器中放置两个按钮:

nextMonth和previousMonth。

窗口的南面添加一个Panel容器,其布局是FlowLayout,Panel容器中放置一个标签用来显示一些信息。

1)编写CalendarBean类,实现日期类:

publicclassCalendarBean{

Stringday[];

intyear=2013,month=0;

publicvoidsetYear(intyear){

this.year=year;

publicintgetYear(){

returnyear;

publicvoidsetMonth(intmonth){

this.month=month;

publicintgetMonth(){

returnmonth;

//返回某年某月1号开始的日期数组

publicString[]getCalendar(){

Stringa[]=newString[42];

Calendar日历=Calendar.getInstance();

//注意:

1月份是从0开始,所以要减1

日历.set(year,month-1,1);

int星期几=日历.get(Calendar.DAY_OF_WEEK)-1;

intday=0;

if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){

day=31;

if(month==4||month==6||month==9||month==11){

day=30;

if(month==2){

if(((year%4==0)&

&

(year%100!

=0))||(year%400==0)){

day=29;

}else{

day=28;

for(inti=星期几,n=1;

星期几+day;

a[i]=String.valueOf(n);

n++;

returna;

2)补充代码,完成日历窗体界面类设计:

publicclassCalendarFrameextendsFrame{

LabellabelDay[]=newLabel[42];

LabellabelYear;

ButtontitleName[]=newButton[7];

ButtonnextMonth,previousMonth;

LabelshowMessage;

TextFieldinputYear;

CalendarBeancalendar;

Stringname[]={"

日"

一"

二"

三"

四"

五"

六"

intyear=2013,month=1;

Stringdays[];

publicCalendarFrame(){

calendar=newCalendarBean();

calendar.setYear(year);

calendar.setMonth(month);

days=calendar.getCalendar();

ScrollPanescrollPane=newScrollPane();

scrollPane.add(getCenterPanel());

【补充代码】//窗口添加scrollPane在中心区域

【补充代码】//窗口添加pNorth在北面区域

【补充代码】//窗口添加pSouth在南区域。

privatePanelgetNorthPanel(){

Panelpanel=newPanel();

【补充代码…】

privatePanelgetCenterPanel(){

【补充代码】//将panel的布局设置为7行7列的GridLayout布局

for(inti=0;

7;

titleName[i]=newButton(name[i]);

【补充代码】//panel添加组件titleName[i]。

42;

labelDay[i]=newLabel("

"

Label.CENTER);

【补充代码】//panel添加组件labelDay[i]。

labelDay[i].setText(days[i]);

privatePanelgetSouthPanel(){

Panelpan

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1