| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2348 人关注过本帖
标题:我的JPanel中间面板怎么更新不了 ?
只看楼主 加入收藏
yanhaolang
Rank: 1
等 级:新手上路
帖 子:60
专家分:7
注 册:2007-3-12
收藏
 问题点数:0 回复次数:10 
我的JPanel中间面板怎么更新不了 ?

package com.test;
import java.awt.BorderLayout;
import javax.swing.*;
import javax.activity.*;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Frame2 extends JFrame {
BorderLayout borderLayout1 = new BorderLayout();
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenu1 = new JMenu();
JPanel Jf;

public Frame2() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}

private void jbInit() throws Exception {
getContentPane().setLayout(borderLayout1);
this.setJMenuBar(jMenuBar1);
jMenu1.setText("测试");
jMenu1.addActionListener(new Frame2_jMenu1_actionAdapter(this));
jMenuBar1.add(jMenu1);
Jf=(JPanel)this.getContentPane();
Jf.add(new Welcome());
Jf.updateUI();
// Jf.setLayout(null);
this.setSize(400,300);
this.setVisible(true);
}
public static void main(String args[]){
Frame2 F =new Frame2();
}
public void jMenu1_actionPerformed(ActionEvent e) {//这个竟然不起作用,点“测试”菜单没有任何反映
Jf.removeAll();
Jf.add(new FrmUp());
Jf.updateUI();
}
}


class Frame2_jMenu1_actionAdapter implements ActionListener {
private Frame2 adaptee;
Frame2_jMenu1_actionAdapter(Frame2 adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.jMenu1_actionPerformed(e);





}
}



点“测试”菜单没有任何反映,请帮我看下,谢谢1

搜索更多相关主题的帖子: JPanel 面板 
2007-07-29 17:58
l3294832
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-7-29
收藏
得分:0 
JMenu对应的事件是MenuEvent 接口是MenuListener
JMenuItem对应的是ActionEvent 和ActionListener

2007-07-29 18:32
yanhaolang
Rank: 1
等 级:新手上路
帖 子:60
专家分:7
注 册:2007-3-12
收藏
得分:0 
我对应的就是 你所说的 JMenuItem对应的是ActionEvent 和ActionListener 没有错啊 ?
要不你把 它修改一下,发上来,谢谢!
2007-07-29 18:56
l3294832
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-7-29
收藏
得分:0 

package DemoSwing;
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.*;
import javax.activity.*;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Frame2 extends JFrame {
BorderLayout borderLayout1 = new BorderLayout();
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenu1 = new JMenu();
JPanel Jf;
public Frame2() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
getContentPane().setLayout(borderLayout1);
this.setJMenuBar(jMenuBar1);
jMenu1.setText("测试");
jMenu1.addMenuListener(new Frame2_jMenu1_actionAdapter(this)); //JMenu用这个监听器
jMenuBar1.add(jMenu1);
Jf = (JPanel) this.getContentPane();
//Jf.add(new Welcome());
Jf.updateUI();
// Jf.setLayout(null);
this.setSize(400, 300);
this.setVisible(true);
}

public static void main(String args[]) {
Frame2 F = new Frame2();
}

public void jMenu1_actionPerformed(MenuEvent e) {// 这个竟然不起作用,点“测试”菜单没有任何反映
Jf.removeAll();
//Jf.add(new FrmUp());
Jf.updateUI();
}
}
class Frame2_jMenu1_actionAdapter implements MenuListener { //应该有相应的Adapter,自己灾改改吧
private Frame2 adaptee;
Frame2_jMenu1_actionAdapter(Frame2 adaptee) {
this.adaptee = adaptee;
}
public void menuCanceled(MenuEvent e) {
}
public void menuDeselected(MenuEvent e) {
}
public void menuSelected(MenuEvent e) { //JMenu被选中时
adaptee.getContentPane().setBackground(Color.RED);
//adaptee.jMenu1_actionPerformed(e);
}
}


2007-07-29 19:10
l3294832
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-7-29
收藏
得分:0 
最好都弄成内部类..... 这样太不好看了

2007-07-29 19:11
yanhaolang
Rank: 1
等 级:新手上路
帖 子:60
专家分:7
注 册:2007-3-12
收藏
得分:0 
发现不是这个问题,按楼上说的改了 没有反映。。。
2007-07-29 20:11
l3294832
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-7-29
收藏
得分:0 
晕倒 我这咋有反应呢 背景变红了.....

2007-07-29 20:44
l3294832
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-7-29
收藏
得分:0 
public void jMenu1_actionPerformed(MenuEvent e) {// 这个竟然不起作用,点“测试”菜单没有任何反映
Jf.removeAll();
//Jf.add(new FrmUp());
Jf.updateUI();
}
把你的这段代码里的
Jf.removeAll();
//Jf.add(new FrmUp());
Jf.updateUI();

放在
public void menuSelected(MenuEvent e) { //JMenu被选中时
adaptee.getContentPane().setBackground(Color.RED);
//adaptee.jMenu1_actionPerformed(e);
}
里看看腻.....

2007-07-29 20:47
yanhaolang
Rank: 1
等 级:新手上路
帖 子:60
专家分:7
注 册:2007-3-12
收藏
得分:0 

我另外一个程序 和这个一样的,可以运行。。。不是你说的那个问题啊。

2007-07-29 20:57
yanhaolang
Rank: 1
等 级:新手上路
帖 子:60
专家分:7
注 册:2007-3-12
收藏
得分:0 
我找到 答案拉,是因为布局问题。我开始一直用了空布局。。。还是谢谢l3294832 热心回帖。
2007-07-29 22:29
快速回复:我的JPanel中间面板怎么更新不了 ?
数据加载中...
 
   



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

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