📄 myapplet.java
字号:
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 + -