实验四图形用户界面设计
实验目的
1. 掌握Java语言中GUI编程的基本方法 2. 掌握Java语言中AWT组件的基本用法 3. 掌握Java语言中Swing组件的基本用法
实验内容
1. 图形用户界面设计程序(ArtFont.java)
要求:设计一个文字字体设置窗体,在该窗体中可以设置要显示文字的字体内容,包括字体名称、字体大小、粗体和斜体等字体风格。并模拟在不同操作系统下的显示效果。程序的最终显示效果如下:
提示:整个窗体继承于JFrame,采用BorderLayout布局。在窗体中添加三个JPanel:northPanel、centerPanel和southPanel,分别位于窗体的北部、中部和南部,然后分别在各个面板中添加其它组件,并逐步完善程序功能。
请按以下步骤完成程序设计:
1) 新建ArtFont类,该类用于显示主界面。其主要代码如下: publicclass ArtFont extends JFrame {
JComboBox fontType;//字体样式下拉框, JComboBox fontSize;//字体大小下拉框 JComboBox windowStyle;//窗体样式下拉框
JCheckBox boldBx;// 粗体按钮 JCheckBox italicBx;// 斜体按钮 JButton colorBtn;// 颜色按钮; String[] fontNames;// 字体名称;
String[] fontSizes;// 字体大小; JLabel label;// 输入提示标签;
JTextField inputText;// 文字输入框; JTextArea txtArea;// 文字显示区; JPanel northPanel;// 字体设置; JPanel centerPanel;// 显示效果区 JPanel southPanel;//样式设置
Font font;
intboldStyle, italicStyle, underlineStyle; intfontSizeStyle;
String fontNameStyle;
Color colorStyle = Color.black;// 设置字体的默认颜色为黑色; String[] style = { \默认显示效果\, \显示效果\, \显示效果\ };
public ArtFont() { super(\字体设置\); // 设置默认字体 boldStyle = 0; italicStyle = 0; underlineStyle = 0; fontSizeStyle = 10;
fontNameStyle = \宋体\;
font = new Font(fontNameStyle, boldStyle + italicStyle, fontSizeStyle);
northPanel = getNorthPanel(); centerPanel = getCenterPanel(); southPanel = getSouthPanel();
// 设置容器;
Container container = getContentPane(); container.setLayout(new BorderLayout()); 【补充代码】//将northPanel添加到窗体的北部
【补充代码】//将centerPanel添加到窗体的中部
【补充代码】//将southPanel添加到窗体的南部
setSize(500, 300);
【补充代码】//将窗体位于屏幕的中央
artFont.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
2) 根据ArtFont类代码和程序界面图设计北部面板northPanel: private JPanel getNorthPanel() { JPanel panel = new JPanel();
setVisible(true); }
private JPanel getNorthPanel() { JPanel panel = new JPanel(); return panel; }
private JPanel getCenterPanel() { JPanel panel = new JPanel(); return panel; }
private JPanel getSouthPanel() { JPanel panel = new JPanel(); return panel; }
publicstaticvoid main(String args[]) { ArtFont artFont = new ArtFont();
【补充代码…】
return panel;
}
3) 根据ArtFont类代码和程序界面图设计中部面板centerPanel: