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

📄 myapplet.java

📁 网络日志!当前免费FTP服务到处都有,我的这个APPLET用意是:利用起这些免费空间,在自己的网站上实现日志,相当于把数据库建在这些免费的FTP空间上,该代码已经在本地FTP服务器上测试通过,在测试外
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package myapplet;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;

/**
 * <p>Title: JBuilder实验</p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */


public class myApplet extends JApplet {
	//JBuilder生成
	boolean isStandalone = false;
	JPopupMenu popMnu目录 = new JPopupMenu();
	JMenuItem mnuItem删除目录 = new JMenuItem();
	JMenuItem mnuItem目录重命名 = new JMenuItem();
	JMenuItem mnuItem写日志 = new JMenuItem();
	JPopupMenu popMnu日志 = new JPopupMenu();
	JMenuItem mnuItem删除日志 = new JMenuItem();
	JMenuItem mnuItem日志重命名 = new JMenuItem();
	JPopupMenu popMnu文本 = new JPopupMenu();
	JMenuItem mnuItem保存日志 = new JMenuItem();
	JMenuItem mnuItem放弃保存 = new JMenuItem();
	JPopupMenu popMnu空白处 = new JPopupMenu();
	JMenuItem mnuItem添加目录 = new JMenuItem();

	final String str空目录标志 = "<空>";
	storage _storage;//该对象负责数据的存取
	final String str欢迎词 = "欢迎使用很好用地网络日志,怱怱^_^";
	JPanel pnl主界面 = new JPanel();
	CardLayout cardLayout_pnl主界面 = new CardLayout();
	JLabel lbl文件名称1 = new JLabel();
	JTextField txt用户名1 = new JTextField();
	JTextField txt文件名称1 = new JTextField();
	JTextField txt密码1 = new JTextField();
	JPanel pnl连接1 = new JPanel();
	JTextField txtFTP地址1 = new JTextField();
	JLabel lblFTP地址1 = new JLabel();
	JLabel lbl密码1 = new JLabel();
	JLabel lbl用户名1 = new JLabel();
	JButton btn连接1 = new JButton();
	JLabel jLabel1 = new JLabel();
	JLabel lbl文件名称 = new JLabel();
	JTextField txt用户名 = new JTextField();
	JTextField txt文件名称 = new JTextField();
	JSplitPane splitPn = new JSplitPane();
	JTextField txt密码 = new JTextField();
	JPanel pnl连接 = new JPanel();
	JTextField txtFTP地址 = new JTextField();
	JLabel lblFTP地址 = new JLabel();
	JLabel lbl密码 = new JLabel();
	JLabel lbl用户名 = new JLabel();
	JScrollPane scrollPn = new JScrollPane();
	JButton btn连接 = new JButton();
	JSplitPane splitPn主界面 = new JSplitPane();
	JTextArea txt日志 = new JTextArea();
	JTree tree日志目录树 = new JTree(new DefaultMutableTreeNode(""));
	JButton btn保存 = new JButton();//Get a parameter value
	public String getParameter(String key, String def) {
		return isStandalone ? System.getProperty(key, def) :
				(getParameter(key) != null ? getParameter(key) : def);
	}

	//Construct the applet
	public myApplet() {
	}

	//Initialize the applet
	public void init() {
		//初始化存贮类
		_storage = new storage();
		try {
			//做一些JBuilder不能做的界面处理
//			界面();
			//生成界面,由JBuilder生成
			jbInit();
			//为控件添加事件监视器
			添加事件监视器();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	private void 提示(String msg)
	{
		JOptionPane.showMessageDialog(this, msg);
	}
	private void 界面()
	{
		//根结点
		DefaultMutableTreeNode node = new DefaultMutableTreeNode();

		String [] 目录列表 = _storage.取得目录列表();
		for (int i = 0; i < 目录列表.length; i++)
		{
			//生成目录结点
			DefaultMutableTreeNode subNode = new DefaultMutableTreeNode(目录列表[i]);
			//取得特定目录的日志列表
			String [] 日志列表 = _storage.取得日志列表(目录列表[i]);
			if (日志列表.length == 0)
				subNode.add(new DefaultMutableTreeNode(str空目录标志));
			for (int j = 0; j < 日志列表.length; j++)
			{
				//将日志结点一一加到目录结点
				subNode.add(new DefaultMutableTreeNode(日志列表[j]));
			}
			//将目录结点加到根结点
			node.add(subNode);
		}
		//设置树的内容
		tree日志目录树.setModel(new DefaultTreeModel(node));
		//改树结点的背景色
		((DefaultTreeCellRenderer)tree日志目录树.getCellRenderer()).setBackgroundNonSelectionColor(Color.orange);
	}
	//Component initialization
	private void jbInit() throws Exception {
//		this.setSize(new Dimension(600, 450));
		this.getContentPane().setLayout(new BorderLayout());
		mnuItem删除目录.setText("删除目录");
		mnuItem目录重命名.setText("目录重命名");
		mnuItem写日志.setText("写日志");
		mnuItem删除日志.setText("删除日志");
		mnuItem日志重命名.setText("日志重命名");
		mnuItem保存日志.setText("保存日志");
		mnuItem放弃保存.setText("放弃保存");
		mnuItem添加目录.setText("添加目录");
		pnl主界面.setLayout(cardLayout_pnl主界面);
		pnl主界面.setBackground(Color.white);
		pnl主界面.setAlignmentX((float) 0.5);
		lbl文件名称1.setBounds(new Rectangle(202, 156, 71, 16));
		lbl文件名称1.setText("文件名称");
		lbl文件名称1.setFont(new java.awt.Font("Dialog", 0, 14));
		txt用户名1.setBounds(new Rectangle(304, 197, 140, 22));
		txt用户名1.setText("ftp");
		txt用户名1.setFont(new java.awt.Font("Dialog", 0, 14));
		txt文件名称1.setBounds(new Rectangle(304, 156, 140, 22));
		txt文件名称1.setText("data.txt");
		txt文件名称1.setFont(new java.awt.Font("Dialog", 0, 14));
		txt密码1.setBounds(new Rectangle(304, 239, 140, 22));
		txt密码1.setText("ftp");
		txt密码1.setFont(new java.awt.Font("Dialog", 0, 14));
		pnl连接1.setLayout(null);
		txtFTP地址1.setFont(new java.awt.Font("Dialog", 0, 14));
		txtFTP地址1.setText("192.168.1.22");
		txtFTP地址1.setBounds(new Rectangle(304, 114, 140, 22));
		lblFTP地址1.setFont(new java.awt.Font("Dialog", 0, 14));
		lblFTP地址1.setText("FTP服务器地址");
		lblFTP地址1.setBounds(new Rectangle(202, 114, 107, 16));
		lbl密码1.setFont(new java.awt.Font("Dialog", 0, 14));
		lbl密码1.setText("密码");
		lbl密码1.setBounds(new Rectangle(202, 239, 59, 16));
		lbl用户名1.setFont(new java.awt.Font("Dialog", 0, 14));
		lbl用户名1.setText("用户名");
		lbl用户名1.setBounds(new Rectangle(202, 197, 48, 16));
		btn连接1.setBounds(new Rectangle(194, 304, 253, 61));
		btn连接1.setFont(new java.awt.Font("Dialog", 0, 20));
		btn连接1.setIcon(null);
		btn连接1.setSelectedIcon(null);
		btn连接1.setText("Go!");
		btn连接1.addActionListener(new myApplet_btn连接1_actionAdapter(this));
		jLabel1.setFont(new java.awt.Font("Dialog", 0, 38));
		jLabel1.setText("登陆先:");
		jLabel1.setBounds(new Rectangle(89, 36, 241, 64));
		lbl文件名称.setFont(new java.awt.Font("Dialog", 0, 14));
		lbl文件名称.setText("文件名称");
		lbl文件名称.setBounds(new Rectangle(246, 8, 71, 16));
		txt用户名.setFont(new java.awt.Font("Dialog", 0, 14));
		txt用户名.setBounds(new Rectangle(109, 29, 134, 22));
		txt文件名称.setFont(new java.awt.Font("Dialog", 0, 14));
		txt文件名称.setBounds(new Rectangle(304, 5, 145, 22));
		txt密码.setFont(new java.awt.Font("Dialog", 0, 14));
		txt密码.setBounds(new Rectangle(304, 29, 144, 22));
		pnl连接.setLayout(null);
		txtFTP地址.setFont(new java.awt.Font("Dialog", 0, 14));
		txtFTP地址.setBounds(new Rectangle(109, 5, 132, 22));
		lblFTP地址.setFont(new java.awt.Font("Dialog", 0, 14));
		lblFTP地址.setText("FTP服务器地址");
		lblFTP地址.setBounds(new Rectangle(7, 8, 107, 16));
		lbl密码.setFont(new java.awt.Font("Dialog", 0, 14));
		lbl密码.setText("密码");
		lbl密码.setBounds(new Rectangle(248, 31, 59, 16));
		lbl用户名.setFont(new java.awt.Font("Dialog", 0, 14));
		lbl用户名.setText("用户名");
		lbl用户名.setBounds(new Rectangle(8, 28, 48, 16));
		btn连接.setBounds(new Rectangle(452, 5, 62, 45));
		btn连接.setFont(new java.awt.Font("Dialog", 0, 14));
		btn连接.setSelectedIcon(null);
		btn连接.setText("下载");
		btn连接.addActionListener(new myApplet_btn连接_actionAdapter(this));
		splitPn主界面.setOrientation(JSplitPane.VERTICAL_SPLIT);
    splitPn主界面.setEnabled(false);
    splitPn主界面.setDividerSize(0);
		splitPn主界面.setLastDividerLocation(30);
		splitPn主界面.setLeftComponent(pnl连接);
		splitPn主界面.setRightComponent(splitPn);
		txt日志.setBackground(new Color(157, 0, 239));
		txt日志.setFont(new java.awt.Font("Dialog", Font.BOLD, 16));
		txt日志.setForeground(new Color(198, 255, 255));
		txt日志.setText(str欢迎词);
		txt日志.setEnabled(false);
		tree日志目录树.setBackground(Color.orange);
		tree日志目录树.setRootVisible(false);
		tree日志目录树.setFont(new java.awt.Font("Dialog", Font.BOLD, 16));
		btn保存.addActionListener(new myApplet_btn保存_actionAdapter(this));
		btn保存.setText("上传");
		btn保存.addActionListener(new myApplet_btn保存_actionAdapter(this));
		btn保存.setSelectedIcon(null);
		btn保存.setIcon(null);
		btn保存.setSelected(false);
		btn保存.setFont(new java.awt.Font("Dialog", 0, 14));
		btn保存.setBounds(new Rectangle(519, 5, 63, 45));
		popMnu目录.add(mnuItem删除目录);
		popMnu目录.add(mnuItem目录重命名);
		popMnu目录.add(mnuItem写日志);
		popMnu日志.add(mnuItem删除日志);
		popMnu日志.add(mnuItem日志重命名);
		popMnu文本.add(mnuItem保存日志);
		popMnu文本.add(mnuItem放弃保存);
		popMnu空白处.add(mnuItem添加目录);
		pnl主界面.add(pnl连接1,  "pnl连接1");
    pnl连接1.add(btn连接1, null);
    pnl连接1.add(txtFTP地址1, null);
    pnl连接1.add(lblFTP地址1, null);
    pnl连接1.add(lbl密码1, null);
    pnl连接1.add(txt密码1, null);
    pnl连接1.add(jLabel1, null);
    pnl连接1.add(txt文件名称1, null);
    pnl连接1.add(lbl文件名称1, null);
    pnl连接1.add(txt用户名1);
    pnl连接1.add(lbl用户名1);
		pnl主界面.add(splitPn主界面,  "splitPn主界面");
		pnl连接.add(lblFTP地址, null);
		pnl连接.add(txtFTP地址, null);
		pnl连接.add(lbl用户名);
		pnl连接.add(txt用户名);
		pnl连接.add(lbl文件名称, null);
		pnl连接.add(lbl密码, null);
		pnl连接.add(txt密码, null);
		pnl连接.add(txt文件名称, null);
		pnl连接.add(btn连接, null);
		pnl连接.add(btn保存, null);
		splitPn主界面.add(splitPn, JSplitPane.RIGHT);
		splitPn主界面.add(pnl连接, JSplitPane.LEFT);
		splitPn.add(scrollPn, JSplitPane.RIGHT);
		splitPn.add(tree日志目录树, JSplitPane.LEFT);
		scrollPn.getViewport().add(txt日志);
		this.getContentPane().add(pnl主界面,  BorderLayout.CENTER);
		splitPn.setDividerLocation(130);
		splitPn主界面.setDividerLocation(55);
	}

	//Start the applet
	public void start() {
	}

	//Stop the applet
	public void stop() {
	}

	//Destroy the applet
	public void destroy() {
	}

	//Get Applet information
	public String getAppletInfo() {
		return "Applet Information";
	}

	//Get parameter info
	public String[][] getParameterInfo() {
		return null;
	}

	//static initializer for setting look & feel
	static {
		try {
			//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
			//UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
		} catch (Exception e) {
		}
	}

/************************************************************************************/
	public void 添加事件监视器()
	{
		tree日志目录树.addMouseListener(new myApplet_tree日志目录树_mouseAdapter(this));
		tree日志目录树.addTreeSelectionListener(new myApplet_tree日志目录树_selectionListener(this));
		txt日志.addMouseListener(new myApplet_txt日志_mouseAdapter(this));
		mnuItem删除目录.addActionListener(new myApplet_mnuItem删除目录_actionPerformer(this));
		mnuItem目录重命名.addActionListener(new myApplet_mnuItem目录重命名_actionPerformer(this));
		mnuItem写日志.addActionListener(new myApplet_mnuItem写日志_actionPerformer(this));
		mnuItem删除日志.addActionListener(new myApplet_mnuItem删除日志_actionPerformer(this));
		mnuItem日志重命名.addActionListener(new myApplet_mnuItem日志重命名_actionPerformer(this));
		mnuItem添加目录.addActionListener(new myApplet_mnuItem添加目录_actionPerformer(this));
		mnuItem保存日志.addActionListener(new myApplet_mnuItem保存日志_actionPerformer(this));
		mnuItem放弃保存.addActionListener(new myApplet_mnuItem放弃保存_actionPerformer(this));
	}
	public void 隐藏所有弹出菜单()
	{
		popMnu空白处.setVisible(false);
		popMnu目录.setVisible(false);
		popMnu日志.setVisible(false);
		popMnu文本.setVisible(false);
	}
	public void tree日志目录树_mouseClicked(MouseEvent e) {
		//先将所有菜单隐藏
		隐藏所有弹出菜单();
		//是否发生鼠标右击事件
		if (e.getButton() != MouseEvent.BUTTON3)
			return;
		int x = e.getX(),//鼠标右击坐标x
			y = e.getY(),//鼠标右击坐标y
			mx,//菜单显示坐标x
			my;//菜单显示坐标y
		JPopupMenu m;//要显示的菜单
		//取得鼠标右击位置的路径
		TreePath path = tree日志目录树.getPathForLocation(x, y);
		//如果鼠标右击在没有结点的地方
		if (path == null)
			m = popMnu空白处;//显示的菜单为空白处菜单
		//如果鼠标右击在有结点的地方
		else
		{
			//将结点设为选中状态
			tree日志目录树.setSelectionPath(path);
			//提取结点
			DefaultMutableTreeNode node = (DefaultMutableTreeNode)(path.getLastPathComponent());
			//如果结点是日志结点
			if (node.isLeaf())
				m = popMnu日志;//显示的菜单为日志菜单
			//如果结点是目录结点
			else
				m = popMnu目录;//显示的菜单为目录菜单
		}
		//设置菜单的显示位置
		mx = x;
		my = y;
		//显示菜单
		m.show(tree日志目录树, x, y);
	}
	//处理tree日志目录树的选择值变化事件
	public void tree日志目录树_valueChanged(TreeSelectionEvent e)
	{
		//取得结点
		DefaultMutableTreeNode node = (DefaultMutableTreeNode)e.getPath().getLastPathComponent();
		//如果结点被移除
		if (node.getParent() == null)
		{
			//不允许编辑
			txt日志.setEnabled(false);
			//设置欢迎词
			txt日志.setText(str欢迎词);
			//返回
			return;
		}
		//如果是日志结点
		if (node.isLeaf())
		{
			//取得日志结点对应的内容
			String 日志内容 = _storage.取得日志内容((String)((DefaultMutableTreeNode)node.getParent()).getUserObject(),
				(String)node.getUserObject());
			//将日志内容显示在文本区

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -