标题:[讨论]这里的static起了什么作用
只看楼主
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
 问题点数:0 回复次数:24 
[讨论]这里的static起了什么作用

package TreeFrame;

import javax.swing.*;
import javax.swing.tree.*;

class Tree extends JTree {

/**
* @param args
*/
static DefaultMutableTreeNode root = new
DefaultMutableTreeNode("资源管理器");

static DefaultMutableTreeNode root1 = new
DefaultMutableTreeNode("桌面");

static DefaultTreeModel treeModel = new DefaultTreeModel(root);

JTree tree = new JTree(treeModel);

JScrollPane scrollPane = new JScrollPane();


public Tree() {
treeModel.insertNodeInto(root1, root, 0);
setTree();

DefaultMutableTreeNode node1 = new
DefaultMutableTreeNode("我的电脑");
DefaultMutableTreeNode node2 = new
DefaultMutableTreeNode("回收站");

treeModel.insertNodeInto(node1, root1, root1.getChildCount());
treeModel.insertNodeInto(node2, root1, root1.getChildCount());
//new TreeMenu();

try {
UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch(Exception el) {
el.printStackTrace();
System.exit(0);
}
}

public void setTree() {
scrollPane.setViewportView(tree);
}

public JScrollPane getTree() {
return scrollPane;
}

}


上面红色的地方,如果变量声明为static的  这时就会添加两次,不明白为什么。。。

还有一个问题就是,我不把这里的变量声明为static的话,同一个包中的其它类为什么不能引用!!

搜索更多相关主题的帖子: static 资源管理器 new JTree import 
2007-02-05 10:36
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
得分:0 
这里的静态变量是为了让别的类方便使用

人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2007-02-05 10:49
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
得分:0 
这个我当然知道啊!!!这个类是我自已写的!!
我是问为什么不加static就会出现上面的问题啊!! 加了出现第一个问题,不加是第二个问题。。。

开开心心的过&玩每一天!!!!
2007-02-05 11:03
Java
Rank: 1
等 级:新手上路
帖 子:718
专家分:0
注 册:2007-1-29
得分:0 
你声明为static后,无论这个类生成了多少个对象,static的变量大家都只有一份,

这就是static 的好处

Java,My Love!
2007-02-05 11:09
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
得分:0 
是啊  我知道啊  那为什么添加的时候会加入双份的呢?
说的清楚点好么

开开心心的过&玩每一天!!!!
2007-02-05 11:16
Java
Rank: 1
等 级:新手上路
帖 子:718
专家分:0
注 册:2007-1-29
得分:0 

static 会生成两次?

不可能的,一定是你哪里弄错了


Java,My Love!
2007-02-05 11:19
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
得分:0 
那你把这段代码运行下就知道了呀  大体就是这样  其它另一个启动类我没帖上来  里面没什么东西 你可以自已给这个方法加个MAIN试下

开开心心的过&玩每一天!!!!
2007-02-05 11:25
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
得分:0 

[CODE]这是我的MIAN类:
package TreeFrame;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Main extends JFrame {

public Main() {
super("JAVA做的windows资源管理器---しΟν∈→鱈制作");

//getContentPane().add(new Tree().getTree());
//getContentPane().add(new Frame());
JSplitPane splitPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
true, new Tree().getTree(), new Tree().getTree());
getContentPane().add(splitPanel);
this.setSize(new Dimension(800, 600));
this.setLocation(100, 50);
this.show();

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}

public static void main(String[] args) {
new Main();
}
}[/CODE]


开开心心的过&玩每一天!!!!
2007-02-05 11:27
Java
Rank: 1
等 级:新手上路
帖 子:718
专家分:0
注 册:2007-1-29
得分:0 
你把所有的代码都帖上来看看

Java,My Love!
2007-02-05 11:27
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
得分:0 
帖上来了啊 

开开心心的过&玩每一天!!!!
2007-02-05 11:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-119681-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.473639 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved