2005年2月2日3:43:23
问题是:现在有个窗口类:ProjectDialog.java
主界面类是:StudentDataManagerUI.java
如何在窗口里操作后,主界面能够产生相应的变化呢?
假设ProjectDialog.java里有个JButton类型的按钮,叫 button
StudentDataManager.java里有个JTree 叫tree
要求按下button后,产生如下变化:
1.关闭窗口;
2.在后台新建一个文件夹;
3.tree能够有变化.
解决办法其实很简单(我开始怎么没想到?)
/*
*第一个文件ProjectDialog.java
*/
public class ProjectDialog extends JDialog
{
private JButton button;
private String fileName;
private ......;
.....
public ProjectDialog(JFrame frame, String str, boolean isModel)
{
b = new JButton("button");
...
setSize(300,400);
setVisible(true);
}
//通过这个public方法把不同文件里的组件联系起来
public JButton getButton()
{
return b;
}
//等会新建的文件夹名是从这里得到的
public String getFileName()
{
return fileName;
}
}
/*
*另外一个文件StudentDataManager.java
*/
public class StudentDataManager
{
private JTree tree;
private DefaultMutableTreeNode root;
private DefaultTreeModel treeModel;
private JButton start;
private ProjectDialog projectDialog;
private JButton projectDialogButton;
....
public StudentDataManager()
{
start = new JButton();
root = new DefaultMutableTreeNode();
treeModel = new DefaultTreeModel();
tree = new JTree(treeModel);
.......
start.addActionListener(
new ActionListener()
{
public actionPerformed(ActionEvent event)
{
/*
*这里是关键性的一步,只需把新产生的窗口赋予一个变量就可以了
*/
projectDialog = new ProjectDialog(StudentDataManager.this,
"New Project",
"false")
/*
*注意上面的模态是false,为什么如果是true的话,后面给button加
*的监听器就无效了呢?
*/
//通过getButton()方法就可以在这里跟button加上这里需要的监听器了
projectDialogButton = project.getButton();
//生成一个我们写的ButtonHandler
ButtonHandler buttonHandler = new ButtonHandler();
/*
*给这个button加上监听器,这样,虽然button是那个类里面的组件,
*仍然可以对这个类里面的组件进行操作了:)
*/
projectDialogButton.addActionListener(buttonHandler);
}
});
}
private class ButtonHandler implements ActionListener
{
public actionPerformed(ActionEvent event)
{
projectDiaog.dispose();//关闭窗口
String fileName = projectDialog.getFileName();
File createFile = new File(fileName);
creatFile.mkDir();//新建一个文件夹
DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(fileName);
treeMode.add(newNode,root,root.getChildCount);//这里的tree作出相应的变化
//完成任务:)
}
}
}
分享到:
相关推荐
Swing 扩展组件Swing 扩展组件Swing 扩展组件Swing 扩展组件
普通swing组件用法
对JAVA中Swing组件有一个很好的讲解,并通过实际的例子给读者一个清晰的认识和掌握!
Java Swing组件写的游戏客户端Java Swing组件写的游戏客户端 Java Swing组件写的游戏客户端Java Swing组件写的游戏客户端 Java Swing组件写的游戏客户端Java Swing组件写的游戏客户端 Java Swing组件写的游戏客户端...
3.熟悉Java AWT、swing组件的功能; 4.掌握常用组件的事件接口; 5.会应用AWT、swing组件进行应用程序设计。 二、实验内容 设计windows计算器图形用户界面(如下图所示)。 AWT、swing组件应用程序设计设计(完成...
主要介绍了Java Swing组件文件选择器JFileChooser简单用法,结合实例形式分析了Swing组件中的文件选择器JFileChooser的简单使用方法,需要的朋友可以参考下
常用Swing组件一览表 新手学习的Swing组件 可以节约点时间
常用Swing组件GUI设计,
swing组件封装重写
Swing组件(javax.swing.-) 面板:JPanel 标签化窗格:JTabbedPane 拆分窗格:JSplitPane 滚动窗格:JScrollPane 工具栏:JToolBar 桌面窗格:JDesktopPane 内部框架:JInternalFrame 分层窗格:JLayeredPane ...
Java Swing 组件全演示
javaswing组件大全.pdf
JIDE Common Layer是一套很不错的Swing组件类库,它JIDE软件公司其他产品的基础,于2007年4月开源,在其开源之前是JIDE商业软件中的一部分。它包含将近10万行代码,超过30个的Swing组件和工具。 压缩包中含有对应的...
Java Swing 组件 一览表
关于swing组件的集合,刚刚接触这些的朋友看看,对swing组件有些了解
swing 组件 demo
详细的讲述了java。swing包的各个组件的用法与事件处理
这里收集了java的大多数组件的应用,同时让你掌握java Swing组件的应用 ,使得你学习java的gui也不再那么纠结,