通过这学期伍老师的教学以及布置的作业之猜数字和计算器,对Java的界面设计颇为感兴趣,基于此,我就想做点更有意思的东西,所以仿照Windows字体窗口的设计做了一点点东西,中间出现了许多为本人也是新学的知识点,大部分来源于网络,所以在此把自己做了几天的内容,分享出来和大家一起学习。
一、效果图
二、代码分析
1.界面代码
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
public class Myitem {
JFrame Font_dialog=new JFrame("字体");
String[] font_types={
"方正粗黑宋简体","仿宋","黑体","楷体","宋体","微软雅黑","新宋体","Arial"
,"Times New Roman"};
String[] font_types2={
"常规","粗体","倾斜","粗体倾斜"};
String[] font_types3={
"8","9","10","11","12","14","16","18","20"
,"22","24","26","28","36","48","72"};
// //
Font font=new Font("方正粗黑宋简体",Font.PLAIN,10);
Font the_font=new Font("方正粗黑宋简体",Font.PLAIN,10);//初始化
// //
JTextField font_choosed=new JTextField(25);
JList list=new JList();
JScrollPane ScrollPane=new JScrollPane(list);
JPanel left_panel=new JPanel();
Font[] fonts=new Font[9];
JLabel left_label=new JLabel("字体(F):");
// //
JTextField font_choosed2=new JTextField(8);
JList list2=new JList();
JScrollPane ScrollPane2=new JScrollPane(list2);
JPanel center_panel=new JPanel();
JLabel center_label=new JLabel("字形(Y):");
// //
JTextField font_choosed3=new JTextField(5);
JList list3=new JList();
JScrollPane ScrollPane3=new JScrollPane(list3);
JPanel right_panel=new JPanel();
Font[] fonts3=new Font[9];
JLabel right_label=new JLabel("大小(S):");
// //
JPanel show_panel=new JPanel();
JLabel show_label=new JLabel("AaBbYyZz");
// //
JComboBox combobox=new JComboBox();
// //
JPanel ends_panel=new JPanel();
JButton[] btns=new JButton[2];
public Myitem()
{
Font_dialog.setSize(450,520);
Font_dialog.setLocation(500,200);
Font_dialog.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
Font_dialog.setResizable(false);
// //
create_left_panel();//创建左上组件
// //
create_center_panel();//创建中上组件
// //
create_right_panel();//创建右上组件
// //
show_panel();//创建展示面板
// //
create_bottom_checkbox();//创建底部的选项框
// //
create_ends_panel();//创建最后的两个按钮
// //
Font_dialog.setLayout(null);
left_panel.setBounds(10,20,170,180);
center_panel.setBounds(200,20,130,180);
right_panel.setBounds(350,20,70,180);
show_panel.setBounds(220,210, 200, 120);
combobox.setBounds(220,350, 200, 25);
ends_panel.setBounds(250,440, 200,300);
// //
Font_dialog.add(left_panel);
Font_dialog.add(center_panel);
Font_dialog.add(right_panel);
Font_dialog.add(show_panel);
Font_dialog.add(combobox);
Font_dialog.add(ends_panel);
// //
Font_dialog.setVisible(true);
// //
}
public static void main(String[] args) {
new Myitem();
}
public void create_left_panel()
{
String[] font_names={
"方正粗黑宋简体","仿宋","黑体","楷体","宋体","微软雅黑","新宋体","Arial"
,"Times New Roman"};
DefaultListModel models=new DefaultListModel();
int j;
for(j=0;j<font_names.length;j++)
{
models.addElement(font_names[j]);//在列表模型中添加元素
}
list.setModel(models);//对list列表项进行添加默认列表模型
//相当于在JList list=new Jlist(String [])
// //
font_choosed.setText("方正粗黑宋简体");//定义初始字体状态
// //
list.setVisibleRowCount(7);
//
ScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
//
left_panel.setLayout(new BorderLayout());
left_panel.add(left_label,BorderLayout.NORTH);
left_panel.add(font_choosed,BorderLayout.CENTER);
left_panel.add(ScrollPane,BorderLayout.SOUTH);
}
public void create_center_panel()
{
int o;
///
String[] font_names2={
"常规","粗体","倾斜","粗体倾斜"};
DefaultListModel models2=new DefaultListModel();
int op;
for(op=0;op<font_names2.length;op++)
{
models2.addElement(font_names2[op]);//将选项添加到列表list2
}
list2.setModel(models2);
font_choosed2.setText("常规");//定义初始字体状态
///
list2