📄 nwfontchoosers.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
// 字体选择窗口
// FontChooser by Noah w.
// 作者 Noah w.
public class NwFontChooserS extends JDialog
{
/**
*
*/
private static final long serialVersionUID = 1685289264908497481L;
String[] styleList = new String[]
{"Plain","Bold","Italic" };
String[] sizeList = new String[]
{"3","4","5","6","7","8","9","10","11","12","13","14","15","16","17",
"18","19","20","22","24","27","30","34","39","45","51","60"};
NwList StyleList;
NwList FontList ;
NwList SizeList ;
static JLabel Sample = new JLabel();
boolean ob = false;
private NwFontChooserS(Frame parent,boolean modal,Font font)
{
super (parent,modal);
initAll();
setTitle("Font Choosr");
if (font == null) font = Sample.getFont();
FontList.setSelectedItem(font.getName());
SizeList.setSelectedItem(font.getSize()+"");
StyleList.setSelectedItem(styleList[font.getStyle()]);
}
public static Font showDialog(Frame parent,String s,Font font)
{
NwFontChooserS fd = new NwFontChooserS(parent,true,font);
if (s != null) fd.setTitle(s);
fd.setVisible(true);
Font fo = null;
if (fd.ob) fo = Sample.getFont();
fd.dispose();
return(fo);
}
private void initAll()
{
getContentPane().setLayout(null);
setBounds(50,50,425,400);
addLists();
addButtons();
Sample.setBounds(10,320,415,25);
Sample.setForeground(Color.black);
getContentPane().add(Sample);
addWindowListener(new WindowAdapter()
{ public void windowClosing(java.awt.event.WindowEvent e)
{ setVisible (false);}});
}
private void addLists()
{
FontList = new NwList(GraphicsEnvironment.getLocalGraphicsEnvironment
().getAvailableFontFamilyNames());
StyleList = new NwList(styleList);
SizeList = new NwList(sizeList);
FontList.setBounds(10,10,260,295);
StyleList.setBounds(280,10,80,295);
SizeList.setBounds(370,10,40,295);
getContentPane().add(FontList);
getContentPane().add(StyleList);
getContentPane().add(SizeList);
}
private void addButtons()
{
JButton ok = new JButton("Ok");
ok.setMargin(new Insets(0,0,0,0));
JButton ca = new JButton("Cancel");
ca.setMargin(new Insets(0,0,0,0));
ok.setBounds(260,350,70,20);
ok.setFont(new Font(" ",1,11));
ca.setBounds(340,350,70,20);
ca.setFont(new Font(" ",1,12));
getContentPane().add(ok);
getContentPane().add(ca);
ok.addActionListener(new ActionListener()
{ public void actionPerformed(ActionEvent e)
{ setVisible(false);
ob = true;}});
ca.addActionListener(new ActionListener()
{ public void actionPerformed(ActionEvent e)
{ setVisible(false);
ob = false;}});
}
private void showSample()
{
int g = 0;
try {g = Integer.parseInt(SizeList.getSelectedValue());}
catch(NumberFormatException nfe){}
String st = StyleList.getSelectedValue();
int s = Font.PLAIN;
if (st.equalsIgnoreCase("Bold")) s = Font.BOLD;
if (st.equalsIgnoreCase("Italic")) s = Font.ITALIC;
Sample.setFont(new Font(FontList.getSelectedValue(),s,g));
Sample.setText("字体样式 ABCDEF 1234, Ok Cancel ");
}
//////////////////////////////////////////////////////////////////////
public class NwList extends JPanel
{
/**
*
*/
private static final long serialVersionUID = -3188868673316513550L;
JList jl;
JScrollPane sp;
JLabel jt;
String si = " ";
public NwList(String[] values)
{
setLayout(null);
jl = new JList(values);
sp = new JScrollPane(jl);
jt = new JLabel();
jt.setBackground(Color.white);
jt.setForeground(Color.black);
jt.setOpaque(true);
jt.setBorder(new JTextField().getBorder());
jt.setFont(getFont());
jl.setBounds(0,0,100,1000);
jl.setBackground(Color.white);
jl.addListSelectionListener(new ListSelectionListener()
{ public void valueChanged(ListSelectionEvent e)
{ jt.setText((String)jl.getSelectedValue());
si = (String)jl.getSelectedValue();
showSample();}});
add(sp);
add(jt);
}
public String getSelectedValue()
{
return(si);
}
public void setSelectedItem(String s)
{
jl.setSelectedValue(s,true);
}
public void setBounds(int x, int y, int w ,int h)
{
super.setBounds(x,y,w,h);
sp.setBounds(0,y+12,w,h-23);
sp.revalidate();
jt.setBounds(0,0,w,20);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -