?? gui.java
字號:
import javax.swing.*;
import javax.swing.border.BevelBorder;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
//主界面類
public class GUI extends WindowAdapter {
// 面板
static JFrame jf = new JFrame("無標題-記事本");
// 菜單欄
menu m = new menu(this);
// 文本域
static JTextPane jt = new JTextPane();
// 狀態條
static JPanel statusbar = new JPanel(new BorderLayout());
// 行列數
JLabel status = new JLabel();
//文件是否修改
static boolean change = false;
//程序是否退出
static boolean quit=true;
public GUI() {
JScrollPane jsp = new JScrollPane();
jsp.getViewport().add(jt);
jt.addKeyListener(new KL());
jt.addCaretListener(new CL());
// 構造控件屬性
status.setBorder(new BevelBorder(BevelBorder.LOWERED));
status.setText(" Ln 1 Col 1 ");
status.setPreferredSize(new Dimension(100, 20));
statusbar.add(status, BorderLayout.EAST);
// 構造面板屬性
jf.setSize(400, 400);
jf.setLocation(200, 200);
jf.setLayout(new BorderLayout());
jf.add(jsp, BorderLayout.CENTER);
jf.add(statusbar, BorderLayout.SOUTH);
jf.setJMenuBar(m.mb);
jf.addWindowListener(this);
jf.setVisible(true);
}
// 消息處理函數
// WindowAdapter
public void windowDeactivated(WindowEvent e) {
if(!quit) jf.setVisible(true);
}
public void windowClosing(WindowEvent e) {
m.filels.exit();
}
// KeyListener
class KL extends KeyAdapter {
// 設置是否文本更改過
public void keyReleased(KeyEvent e) {
if (change == false)
change = true;
}
}
// CaretListener
class CL implements CaretListener {
// 設置狀態欄的行列數
public void caretUpdate(CaretEvent e) {
int n = e.getDot();
String temp = jt.getText();
int i = 1;
while (true) {
int j = temp.indexOf(10);
if (j == -1 || j > n)
break;
temp = temp.substring(j + 1);
n -= j;
i++;
}
status.setText(" Ln " + i + " Col " + (n + 1) + " ");
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -