java 用swing来设计UI,能不能够实现动态的加载组件呢?

我想用一个button触发一个JTree,代码是可以运行,但是就是不出现那个JTree。... 我想用一个button触发一个JTree,代码是可以运行,但是就是不出现那个JTree。 展开
 我来答
百度网友7893292
推荐于2016-09-10 · TA获得超过844个赞
知道小有建树答主
回答量:1088
采纳率:83%
帮助的人:684万
展开全部
完全可以动态加载组件。

你在button触发的事件里,加一个 System.out.println("abc");
看看有没有执行。

还有,加JTree后,再执行一下 repaint(); 试试。
追问
我那里是用一个scrollPane来装着JTree的,加上repaint();这一句后那个scrollPane是可以显示了,但是JTree就需要把程序最小化再最大化才能显示。请问这是怎么回事呢?谢谢!
追答
我试了一下,如果JTree没有放在JScrollPane里,使用repaint()还是可以绘出来,但如果放在JScrollPane里,调用repaint()后,只能绘制出JScrollPane,但JScrollPane里的JTree无法绘制出来。必须使用 updateUI();
public void actionPerformed(ActionEvent e)
{
Object obj = e.getSource();
if(obj == button) //点击了按钮
{
JTree tree = new JTree();
JScrollPane jsp = new JScrollPane(tree);
jsp.setBounds(60, 60, 300, 100);

getContentPane().add(jsp);

jsp.updateUI();

//或用下面两句效果与jsp.updateUI();一样。
//repaint();
//validate();
}
}
wh猎人
2015-07-22 · TA获得超过1125个赞
知道大有可为答主
回答量:1157
采纳率:89%
帮助的人:659万
展开全部
能!
因为Swing组件都是Java自己画出来的,所以可以在任意时刻新建组件(即使没有父容器都可以),从这点讲其比Windows一般的界面技术还要灵活(虽然不怎么漂亮)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
砍出平成第一斧58
2015-09-09 · TA获得超过1567个赞
知道大有可为答主
回答量:2321
采纳率:86%
帮助的人:1208万
展开全部
能,swing作为一个图形开发工具,这个还是支持的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kimiyyss
2011-08-19 · 超过23用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:40.8万
展开全部
“anexplore”正解 如果动态刷新控件需要这样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
f981510596
2015-10-30 · TA获得超过133个赞
知道答主
回答量:101
采纳率:0%
帮助的人:40.5万
展开全部
当然可以。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式