⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gui.java

📁 记事本
💻 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 + -