📄 fontdialog.java
字号:
package org.loon.framework.ide.test.dialog;
/**
* <p>Title: LoonFramework</p>
* <p>Description:</p>
* <p>Copyright: Copyright (c) 2007</p>
* <p>Company: LoonFramework</p>
* @author chenpeng
* @email:ceponline@yahoo.com.cn
* @version 0.1
*/
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GraphicsEnvironment;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import org.loon.framework.ide.test.LookAndFeel;
public class FontDialog extends JDialog
implements ActionListener, ListSelectionListener
{
/**
*
*/
private static final long serialVersionUID = 1L;
JTextField txtFont;
JList lstFont;
JLabel lblFont;
JPanel pnlFont;
JPanel pnlFontNorth;
JTextField txtStyle;
JList lstStyle;
JLabel lblStyle;
JPanel pnlStyle;
JPanel pnlStyleNorth;
JTextField txtSize;
JList lstSize;
JLabel lblSize;
JPanel pnlSize;
JPanel pnlSizeNorth;
JPanel pnlCenter;
JButton btnOk;
JButton btnCancel;
JPanel pnlSouth;
JPanel pnlSouthEast;
Container contentPane;
String strFont[];
String strStyle[] = {
"普通", "粗体", "斜体", "粗体/斜体"
};
int intStyle[] = {
0, 1, 2, 3
};
String strSize[] = {
"8", "9", "10", "11", "12", "14", "16", "18", "20"
};
String strPri[] = {
"宋体", "Serif", "System"
};
Font font;
public FontDialog(Frame frame, Font font1)
{
super(frame, "JavaIDE : 字体设定", true);
txtFont = new JTextField();
lblFont = new JLabel("字体");
pnlFont = new JPanel();
pnlFontNorth = new JPanel();
txtStyle = new JTextField();
lblStyle = new JLabel("样式");
pnlStyle = new JPanel();
pnlStyleNorth = new JPanel();
txtSize = new JTextField();
lblSize = new JLabel("大小");
pnlSize = new JPanel();
pnlSizeNorth = new JPanel();
pnlCenter = new JPanel();
btnOk = new JButton("确定");
btnCancel = new JButton("取消");
pnlSouth = new JPanel();
pnlSouthEast = new JPanel();
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowevent)
{
setVisible(false);
}
});
contentPane = getContentPane();
if(font == null)
font = font1;
setSize(400, 200);
setResizable(false);
setLocationRelativeTo(frame);
contentPane.setLayout(new BorderLayout(5, 5));
strFont = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
lstFont = new JList(strFont);
lstFont.setSelectedValue(font.getFontName(), true);
txtFont.setText(strFont[lstFont.getSelectedIndex()]);
lstStyle = new JList(strStyle);
int i = font.getStyle();
int j;
for(j = 0; j < intStyle.length && intStyle[j] != i; j++);
lstStyle.setSelectedValue(strStyle[j], true);
txtStyle.setText(strStyle[lstStyle.getSelectedIndex()]);
try
{
lstSize = new JList(strSize);
lstSize.setSelectedValue(Integer.toString(font.getSize()), true);
txtSize.setText(strSize[lstSize.getSelectedIndex()]);
}
catch(Exception exception) { }
lstFont.addListSelectionListener(this);
lstStyle.addListSelectionListener(this);
lstSize.addListSelectionListener(this);
pnlCenter.setLayout(new GridLayout(1, 3, 10, 5));
pnlFont.setLayout(new BorderLayout());
pnlFontNorth.setLayout(new GridLayout(2, 1));
pnlFontNorth.add(lblFont);
pnlFontNorth.add(txtFont);
pnlFont.add("North", pnlFontNorth);
pnlFont.add("Center", new JScrollPane(lstFont));
pnlCenter.add(pnlFont);
pnlStyle.setLayout(new BorderLayout());
pnlStyleNorth.setLayout(new GridLayout(2, 1));
pnlStyleNorth.add(lblStyle);
pnlStyleNorth.add(txtStyle);
pnlStyle.add("North", pnlStyleNorth);
pnlStyle.add("Center", new JScrollPane(lstStyle));
pnlCenter.add(pnlStyle);
pnlSize.setLayout(new BorderLayout());
pnlSizeNorth.setLayout(new GridLayout(2, 1));
pnlSizeNorth.add(lblSize);
pnlSizeNorth.add(txtSize);
pnlSize.add("North", pnlSizeNorth);
pnlSize.add("Center", new JScrollPane(lstSize));
pnlCenter.add(pnlSize);
contentPane.add("Center", pnlCenter);
pnlSouth.setLayout(new BorderLayout());
pnlSouthEast.setLayout(new GridLayout(1, 2));
pnlSouthEast.add(btnOk);
pnlSouthEast.add(btnCancel);
pnlSouth.add("East", pnlSouthEast);
contentPane.add("South", pnlSouth);
btnOk.addActionListener(this);
btnCancel.addActionListener(this);
txtFont.setEditable(false);
txtStyle.setEditable(false);
}
public void setLookAndFeel()
{
LookAndFeel.setLookAndFeel(contentPane);
}
public void valueChanged(ListSelectionEvent listselectionevent)
{
Object obj = listselectionevent.getSource();
if(obj == lstFont)
txtFont.setText((String)lstFont.getSelectedValue());
if(obj == lstStyle)
txtStyle.setText((String)lstStyle.getSelectedValue());
if(obj == lstSize)
txtSize.setText((String)lstSize.getSelectedValue());
}
public void actionPerformed(ActionEvent actionevent)
{
Object obj = actionevent.getSource();
if(obj == btnOk)
setFontInfo();
if(obj == btnCancel)
setFontClear();
setVisible(false);
}
public void setFontInfo()
{
try
{
font = new Font(txtFont.getText(), intStyle[lstStyle.getSelectedIndex()], Integer.parseInt(txtSize.getText()));
}
catch(Exception exception)
{
font = null;
}
}
public void setFontClear()
{
font = null;
}
public Font getFontInfo()
{
return font;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -