?? setmsgprocess.java
字號:
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class setMsgProcess implements ActionListener, ListSelectionListener,
ChangeListener {
menu men;
GUI gui;
// 字的屬性和對話框
Font ft;
JDialog jdg;
// 設置文字字體
JList jlstype;
String[] fontList;
JScrollPane jsp;
JTextField word;
// 設置文字格式
String[] datastyle = { "常規", "斜體", "粗體", "粗斜體" };
JList jlsstyle;
JTextField style;
// 設置文字大小
String[] datasize = { "12", "14", "20", "32" };
JList jlssize;
JTextField size;
// 預覽
JTextField example;
// 設置顏色
JSlider red;
JTextField redsize;
JSlider blue;
JTextField bluesize;
JSlider green;
JTextField greensize;
// 按鈕
JButton jbnok;
JButton jbncancel;
public setMsgProcess(menu men, GUI gui) {
this.gui = gui;
this.men = men;
}
// 構造面板
public void construct() {
// --設置各個控件的屬性
// 設置字體編輯框屬性
fontList = GraphicsEnvironment.getLocalGraphicsEnvironment()
.getAvailableFontFamilyNames();// 獲取系統的字體
jlstype = new JList(fontList);
jlstype.setVisibleRowCount(5);
jlstype.addListSelectionListener(this);
jsp = new JScrollPane();
jsp.getViewport().add(jlstype);
word = new JTextField(GUI.jt.getFont().getFontName());
word.addActionListener(this);
// 文字類型
jlsstyle = new JList(datastyle);
jlsstyle.setVisibleRowCount(5);
jlsstyle.addListSelectionListener(this);
style = new JTextField(datastyle[GUI.jt.getFont().getStyle()]);
style.addActionListener(this);
// 文字大小
jlssize = new JList(datasize);
jlssize.setVisibleRowCount(5);
jlssize.addListSelectionListener(this);
size = new JTextField(String.valueOf(GUI.jt.getFont().getSize()) );
size.addActionListener(this);
// 實例
example = new JTextField("經偉制作 MADE BY JANG_GEUM");
example.setPreferredSize(new Dimension(100, 50));
example.setEditable(false);
// 顏色
red = new JSlider(JSlider.VERTICAL, 0, 255, GUI.jt.getForeground().getRed());
red.setPreferredSize(new Dimension(30, 80));
red.addChangeListener(this);
redsize = new JTextField(String.valueOf( GUI.jt.getForeground().getRed() ) );
redsize.setPreferredSize(new Dimension(30, 20));
redsize.addActionListener(this);
blue = new JSlider(JSlider.VERTICAL, 0, 255, GUI.jt.getForeground().getBlue());
blue.setPreferredSize(new Dimension(30, 80));
blue.addChangeListener(this);
bluesize = new JTextField(String.valueOf( GUI.jt.getForeground().getBlue() ) );
bluesize.setPreferredSize(new Dimension(30, 20));
bluesize.addActionListener(this);
green = new JSlider(JSlider.VERTICAL, 0, 255, GUI.jt.getForeground().getGreen());
green.setPreferredSize(new Dimension(30, 80));
green.addChangeListener(this);
greensize = new JTextField( String.valueOf( GUI.jt.getForeground().getGreen() ) );
greensize.setPreferredSize(new Dimension(30, 20));
greensize.addActionListener(this);
// 按鈕
jbnok = new JButton("確認");
jbncancel = new JButton("取消");
jbnok.addActionListener(this);
jbncancel.addActionListener(this);
// --各個控件的布局
JPanel p0 = new JPanel(new BorderLayout());
p0.add(word, BorderLayout.NORTH);
p0.add(jsp, BorderLayout.CENTER);
p0.setPreferredSize(new Dimension(80, 140));
p0.setBorder(BorderFactory.createTitledBorder("字體"));
// 字形布局
JPanel p1 = new JPanel(new BorderLayout());
p1.add(style, BorderLayout.NORTH);
p1.add(jlsstyle, BorderLayout.CENTER);
p1.setPreferredSize(new Dimension(50, 140));
p1.setBorder(BorderFactory.createTitledBorder("字形"));
// 大小布局
JPanel p2 = new JPanel(new BorderLayout());
p2.add(size, BorderLayout.NORTH);
p2.add(jlssize, BorderLayout.CENTER);
p2.setPreferredSize(new Dimension(40, 140));
p2.setBorder(BorderFactory.createTitledBorder("大小"));
// 顏色
JPanel p5 = new JPanel(new BorderLayout());
p5.add(new JLabel("紅"), BorderLayout.NORTH);
p5.add(redsize, BorderLayout.CENTER);
p5.add(red, BorderLayout.SOUTH);
p5.setPreferredSize(new Dimension(30, 140));
//
JPanel p6 = new JPanel(new BorderLayout());
p6.add(new JLabel("綠"), BorderLayout.NORTH);
p6.add(greensize, BorderLayout.CENTER);
p6.add(green, BorderLayout.SOUTH);
p6.setPreferredSize(new Dimension(30, 140));
//
JPanel p7 = new JPanel(new BorderLayout());
p7.add(new JLabel("藍"), BorderLayout.NORTH);
p7.add(bluesize, BorderLayout.CENTER);
p7.add(blue, BorderLayout.SOUTH);
p7.setPreferredSize(new Dimension(30, 140));
//
JPanel p8 = new JPanel(new GridLayout(1, 3));
p8.add(p5);
p8.add(p6);
p8.add(p7);
p8.setPreferredSize(new Dimension(110, 140));
p8.setBorder(BorderFactory.createTitledBorder("顏色"));
// 綜合顏色布局
JPanel p3 = new JPanel();
p3.add(p0);
p3.add(p1);
p3.add(p2);
p3.add(p8);
p3.setPreferredSize(new Dimension(330, 140));
// 示例布局
JPanel p4 = new JPanel(new BorderLayout());
p4.add(new JLabel("示例"), BorderLayout.WEST);
p4.add(example, BorderLayout.CENTER);
// 按鈕布局
JPanel p10 = new JPanel();
p10.add(jbnok);
p10.add(jbncancel);
p10.setPreferredSize(new Dimension(70, 120));
// 加載到對話框
jdg = new JDialog(new Frame(), "設置");
jdg.setLayout(new BorderLayout());
jdg.add(p3, BorderLayout.CENTER);
jdg.add(p4, BorderLayout.SOUTH);
jdg.add(p10, BorderLayout.EAST);
// 設置對話框的屬性
jdg.setSize(400, 260);
setFont();
jdg.setResizable(false);
jdg.setLocation(GUI.jf.getX() + GUI.jf.getWidth() / 2 - jdg.getWidth()
/ 2, GUI.jf.getY() + GUI.jf.getHeight() / 2 - jdg.getHeight()
/ 2);
jdg.setModal(true);
jdg.setVisible(true);
}
// 設置字體屬性
public void setFont() {
int i = 0, j;
if (jlsstyle.getSelectedIndex() == 1)
i = Font.ITALIC;
else if (jlsstyle.getSelectedIndex() == 2)
i = Font.BOLD;
else if (jlsstyle.getSelectedIndex() == 3)
i = Font.BOLD + Font.ITALIC;
j = Integer.parseInt(size.getText());
String type = word.getText();
ft = new Font(type, i, j);
example.setFont(ft);
example.setForeground(new Color(Integer.parseInt(redsize.getText()),
Integer.parseInt(greensize.getText()), Integer
.parseInt(bluesize.getText())));
}
//消息處理
public void actionPerformed(ActionEvent e) {
// 初始化設置對話框
if (e.getSource() == men.set[0]) {
construct();
}
// “確認”按鈕
else if (e.getSource() == jbnok) {
GUI.jt.setFont(ft);
GUI.jt.setForeground(new Color(Integer.parseInt(redsize.getText()),
Integer.parseInt(greensize.getText()), Integer
.parseInt(bluesize.getText())));
jdg.setVisible(false);
jdg.dispose();
}
// “取消”按鈕
else if (e.getSource() == jbncancel) {
jdg.setVisible(false);
jdg.dispose();
} else {
int i;
// 文字大小文本框
if (e.getSource() == size) {
i = Integer.parseInt(size.getText());
if (i > 100) {
size.setText("100");
}
if (i < 0) {
size.setText("0");
}
}
// 顏色 紅色值
else if (e.getSource() == redsize) {
i = Integer.parseInt(redsize.getText());
if (i > 255) {
redsize.setText("255");
}
if (i < 0) {
redsize.setText("0");
}
red.setValue(Integer.parseInt(redsize.getText()));
}
// 顏色 藍色值
else if (e.getSource() == bluesize) {
i = Integer.parseInt(bluesize.getText());
if (i > 255) {
bluesize.setText("255");
}
if (i < 0) {
bluesize.setText("0");
}
blue.setValue(Integer.parseInt(bluesize.getText()));
}
// 顏色 綠色值
else if (e.getSource() == greensize) {
i = Integer.parseInt(greensize.getText());
if (i > 255) {
greensize.setText("255");
}
if (i < 0) {
greensize.setText("0");
}
green.setValue(Integer.parseInt(greensize.getText()));
}
// 字體類型文本框
else if (e.getSource() == word) {
String str = word.getText();
for (i = 0; i < fontList.length; i++)
if (str.equals(fontList[i]))
break;
word.setText(fontList[i % fontList.length]);
jlstype.setSelectedValue(fontList[i % fontList.length], true);
}
// 文字格式
else if (e.getSource() == style) {
// 判斷輸入合法
for (i = 0; i < datastyle.length; i++)
if (style.getText().equals(datastyle[i]))
break;
if (i == datastyle.length) {
style.setText("常規");
jlsstyle.setSelectedIndex(0);
}
setFont();
}
setFont();
}
}
// 處理列表選擇
public void valueChanged(ListSelectionEvent e) {
if (e.getSource() == jlsstyle) {
style.setText((String) jlsstyle.getSelectedValue());
} else if (e.getSource() == jlssize) {
size.setText((String) jlssize.getSelectedValue());
} else if (e.getSource() == jlstype) {
word.setText((String) jlstype.getSelectedValue());
}
setFont();
}
// 處理顏色值變化
public void stateChanged(ChangeEvent e) {
if (e.getSource() == red) {
redsize.setText(String.valueOf(red.getValue()));
} else if (e.getSource() == blue) {
bluesize.setText(String.valueOf(blue.getValue()));
} else if (e.getSource() == green) {
greensize.setText(String.valueOf(green.getValue()));
}
setFont();
}
}
/*
jList2.setModel(new javax.swing.AbstractListModel() {
String[] strings =java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment()
.getAvailableFontFamilyNames();// 獲取系統的字體
public int getSize() { return strings.length; }
public Object getElementAt(int i) { return strings[i]; }
});
*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -