📄 fontsetting.java~53~
字号:
package texteditor;
/**
* <p>Title: 文本编辑器</p>
* <p>Description: 本软件为面向对象程序设计期末作业,不得擅自修改</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: 边缘开发室</p>
* @author 第一组 ,组长:谭正辉
* @version 1.0
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
public class FontSetting
extends JFrame
{
JPanel jPanel1 = new JPanel();
Border border1 = BorderFactory.createEtchedBorder(Color.white,
new Color(148, 145, 140));
Border border2 = new TitledBorder(border1, "选择字体");
BorderLayout borderLayout1 = new BorderLayout();
JList fontTypeList = new JList();
JPanel jPanel2 = new JPanel();
JPanel jPanel3 = new JPanel();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
JLabel jLabel1 = new JLabel();
JTextField sizeValueText = new JTextField();
JSlider sizeValue = new JSlider();
JSlider rValue = new JSlider();
JSlider gValue = new JSlider();
JSlider bValue = new JSlider();
Border border3;
TitledBorder titledBorder1;
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JLabel jLabel4 = new JLabel();
JButton jButton4 = new JButton();
JTextField rValueText = new JTextField();
JTextField gValueText = new JTextField();
JTextField bValueText = new JTextField();
JScrollPane jScrollPane1 = new JScrollPane();
JPanel jPanel4 = new JPanel();
BorderLayout borderLayout2 = new BorderLayout();
JTextArea sampleFont = new JTextArea();
JCheckBox jCheckBox1 = new JCheckBox();
JCheckBox jCheckBox2 = new JCheckBox();
JCheckBox backgroundSetSign = new JCheckBox();
JCheckBox foregroundSetSign = new JCheckBox();
ButtonGroup buttonGroup1 = new ButtonGroup();
//f为字体的风格,0为粗体,1为斜体,2为两者
int f;
public FontSetting()
{
try
{
//调用初始化方法
jbInit();
}
catch (Exception exception)
{
exception.printStackTrace();
}
}
private void jbInit() throws Exception
{
border3 = BorderFactory.createEtchedBorder(Color.white,
new Color(148, 145, 140));
titledBorder1 = new TitledBorder(border3, "颜色设置");
this.setResizable(false);
this.setSize(new Dimension(517, 402));
this.setTitle("设置字体");
//居中显示窗口
centerDialog();
getContentPane().setLayout(null);
jPanel1.setBorder(border2);
jPanel1.setBounds(new Rectangle(12, 17, 129, 237));
jPanel1.setLayout(borderLayout1);
jPanel2.setBounds(new Rectangle(12, 295, 466, 44));
jPanel2.setLayout(null);
jButton1.setBounds(new Rectangle(195, 6, 98, 33));
jButton1.setText("取 消");
jButton1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
dispose();
}
});
jButton2.setBounds(new Rectangle(353, 6, 98, 33));
jButton2.setText("应 用");
jButton2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
setContentFont();
}
});
jButton3.setBounds(new Rectangle(23, 6, 98, 33));
jButton3.setText("确 定");
jButton3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
setContentFont();
dispose();
}
});
jLabel1.setText("大小");
jLabel1.setBounds(new Rectangle(151, 22, 39, 29));
sizeValueText.setText("14");
sizeValueText.setBounds(new Rectangle(193, 25, 49, 23));
sizeValueText.addKeyListener(new KeyAdapter()
{
public void keyReleased(KeyEvent e)
{
//如果没有输入,则设置为0
try
{
//取得输入的值
int size = Integer.parseInt(sizeValueText.getText().trim());
//如果设置大于255,则将其设置为255
if (size > 200)
{
sizeValue.setValue(200);
}
//如果没有输入任何数或是小于0的数,则设置为0
else if (size <= 0)
{
sizeValue.setValue(0);
}
else
{
sizeValue.setValue(Integer.parseInt(sizeValueText.getText()));
}
}
catch (Exception ev)
{
//如果输入的数格式不对,则做任何处理
}
}
});
sizeValue.setMaximum(200);
sizeValue.setMinimum(1);
sizeValue.setToolTipText("");
sizeValue.setBounds(new Rectangle(253, 23, 224, 26));
sizeValue.setValue(12);
sizeValue.addChangeListener(new ChangeListener()
{
public void stateChanged(ChangeEvent e)
{
sizeValueText.setText(sizeValue.getValue() + "");
//根据当前的改变处理所有待设置字体
setSampleFont();
}
});
jPanel3.setBorder(titledBorder1);
jPanel3.setBounds(new Rectangle(153, 59, 325, 230));
jPanel3.setLayout(null);
rValue.setMaximum(255);
rValue.setPaintLabels(true);
rValue.setPaintTicks(true);
rValue.setValue(0);
rValue.setBounds(new Rectangle(57, 25, 200, 30));
rValue.addChangeListener(new ChangeListener()
{
public void stateChanged(ChangeEvent e)
{
rValueText.setText(rValue.getValue() + "");
//根据当前的改变处理所有待设置字体
setSampleFont();
}
});
gValue.setMaximum(255);
gValue.setPaintLabels(true);
gValue.setPaintTicks(true);
gValue.setPaintTrack(true);
gValue.setValue(0);
gValue.setBounds(new Rectangle(57, 60, 200, 28));
gValue.addChangeListener(new ChangeListener()
{
public void stateChanged(ChangeEvent e)
{
gValueText.setText(gValue.getValue() + "");
//根据当前的改变处理所有待设置字体
setSampleFont();
}
});
bValue.setMajorTickSpacing(51);
bValue.setMaximum(255);
bValue.setPaintTicks(false);
bValue.setPaintTrack(true);
bValue.setValue(93);
bValue.setBounds(new Rectangle(57, 94, 200, 34));
bValue.addChangeListener(new ChangeListener()
{
public void stateChanged(ChangeEvent e)
{
bValueText.setText(bValue.getValue() + "");
//根据当前的改变处理所有待设置字体
setSampleFont();
}
});
jLabel2.setFont(new java.awt.Font("Dialog", 1, 18));
jLabel2.setForeground(Color.red);
jLabel2.setRequestFocusEnabled(true);
jLabel2.setText("R");
jLabel2.setBounds(new Rectangle(10, 24, 31, 25));
jLabel3.setBounds(new Rectangle(10, 59, 31, 25));
jLabel3.setText("G");
jLabel3.setRequestFocusEnabled(true);
jLabel3.setForeground(Color.green);
jLabel3.setFont(new java.awt.Font("Dialog", 1, 18));
jLabel4.setBounds(new Rectangle(10, 93, 31, 25));
jLabel4.setText("B");
jLabel4.setRequestFocusEnabled(true);
jLabel4.setForeground(Color.blue);
jLabel4.setFont(new java.awt.Font("Dialog", 1, 18));
jButton4.setBounds(new Rectangle(239, 163, 73, 32));
jButton4.setText("选择…");
//选择按钮打开颜色对话框
jButton4.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//点击选择按钮打开颜色选择对话框,并返回选择的颜色,初始为当前颜色
JColorChooser jCC = new JColorChooser();
Color c = jCC.showDialog(null, "请选择要设置的颜色",
new Color(rValue.getValue(), gValue.getValue(),
bValue.getValue()));
//根据返回的颜色设置R,G,B滚动条,从而触发滚动条的stateChange事件(从而设置相应的字体)
if (c != null)
{
rValue.setValue(c.getRed());
gValue.setValue(c.getGreen());
bValue.setValue(c.getBlue());
}
}
});
rValueText.setBounds(new Rectangle(264, 25, 49, 23));
rValueText.addKeyListener(new KeyAdapter()
{
public void keyReleased(KeyEvent e)
{
setScrollValueBaseRedText();
}
private void setScrollValueBaseRedText() throws NumberFormatException
{
//如果没有输入,则设置为0
try
{
//取得输入的值
int r = Integer.parseInt(rValueText.getText().trim());
//如果设置大于255,则将其设置为255
if (r > 255)
{
rValue.setValue(255);
}
//如果没有输入任何数或是小于0的数,则设置为0
else if (r <= 0)
{
rValue.setValue(0);
}
else
{
rValue.setValue(Integer.parseInt(rValueText.getText()));
}
}
catch (Exception ev)
{
//如果输入的数格式不对,则做任何处理
}
}
});
rValueText.setText("0");
gValueText.setBounds(new Rectangle(264, 60, 49, 23));
gValueText.addKeyListener(new KeyAdapter()
{
public void keyReleased(KeyEvent e)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -