当前位置: 技术问答>java相关
这一段代码,为什么达不到我想要的要求
来源: 互联网 发布时间:2017-03-13
本文导语: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MenuMain extends JFrame{ public MenuMain(){ setSize(600,480); setTitle("菜单程序"); new setMyMenu(this);//加入菜单 addWindowListener(new Win...
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MenuMain extends JFrame{
public MenuMain(){
setSize(600,480);
setTitle("菜单程序");
new setMyMenu(this);//加入菜单
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0); //退出应用程序
}
});
setVisible(true);
}
public static void main(String[] args){
new MenuMain();
}
}
class setMyMenu{
MenuMain menumain;
private String jopPut="这是我的一个测试程序,n希望你能喜欢它!";
public setMyMenu(MenuMain menumain){
this.menumain=menumain;
JMenuBar Mb=new JMenuBar();
JMenu MuFile=new JMenu("文件");
JMenu MuEdit=new JMenu("编辑");
JMenu MuHelp=new JMenu("帮助");
JMenuItem MenuAdd=new JMenuItem("增加一项");
JMenuItem MenuAbout=new JMenuItem("关于…");
JMenuItem MenuExit=new JMenuItem("退出");
MenuAdd.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt) {
MenuAddActionPerformed(evt);
}
});
MenuExit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt) {
MenuExitActionPerformed(evt);
}
});
MenuAbout.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt) {
MenuAboutActionPerformed(evt);
}
});
MuFile.add(MenuExit);
MuEdit.add(MenuAdd);
MuHelp.add(MenuAbout);
Mb.add(MuFile);
Mb.add(MuEdit);
Mb.add(MuHelp);
menumain.setJMenuBar(Mb);
}
private void MenuAddActionPerformed(ActionEvent evt) {
setUICom setuicom=new setUICom();
setuicom.addButton("你好",menumain);
}
private void MenuExitActionPerformed(ActionEvent evt) {
System.exit( 0 );
}
private void MenuAboutActionPerformed(ActionEvent evt) {
JOptionPane.showMessageDialog(menumain ,jopPut , "关于这个程序", JOptionPane.INFORMATION_MESSAGE );
}
}
class setUICom{
void addButton(String str,JFrame menumain){//这里面的内容好象不起作用
JButton jb1=new JButton(str);
menumain.getContentPane().add(jb1,BorderLayout.NORTH);
}
}
我的程序执行的时候,点"增加一项",按我的设想,因当执行setUICom类的addButton方法。事实上也执行了,因为我加了一个println()在最后,已经显示出来,可是为什么我的frame里没有出现"jb1"呢?
我把addButton里一段直接放到MenuMain 里,就能出现那个button。但我在菜单选增加一项就是不行。
import java.awt.event.*;
import javax.swing.*;
public class MenuMain extends JFrame{
public MenuMain(){
setSize(600,480);
setTitle("菜单程序");
new setMyMenu(this);//加入菜单
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0); //退出应用程序
}
});
setVisible(true);
}
public static void main(String[] args){
new MenuMain();
}
}
class setMyMenu{
MenuMain menumain;
private String jopPut="这是我的一个测试程序,n希望你能喜欢它!";
public setMyMenu(MenuMain menumain){
this.menumain=menumain;
JMenuBar Mb=new JMenuBar();
JMenu MuFile=new JMenu("文件");
JMenu MuEdit=new JMenu("编辑");
JMenu MuHelp=new JMenu("帮助");
JMenuItem MenuAdd=new JMenuItem("增加一项");
JMenuItem MenuAbout=new JMenuItem("关于…");
JMenuItem MenuExit=new JMenuItem("退出");
MenuAdd.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt) {
MenuAddActionPerformed(evt);
}
});
MenuExit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt) {
MenuExitActionPerformed(evt);
}
});
MenuAbout.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt) {
MenuAboutActionPerformed(evt);
}
});
MuFile.add(MenuExit);
MuEdit.add(MenuAdd);
MuHelp.add(MenuAbout);
Mb.add(MuFile);
Mb.add(MuEdit);
Mb.add(MuHelp);
menumain.setJMenuBar(Mb);
}
private void MenuAddActionPerformed(ActionEvent evt) {
setUICom setuicom=new setUICom();
setuicom.addButton("你好",menumain);
}
private void MenuExitActionPerformed(ActionEvent evt) {
System.exit( 0 );
}
private void MenuAboutActionPerformed(ActionEvent evt) {
JOptionPane.showMessageDialog(menumain ,jopPut , "关于这个程序", JOptionPane.INFORMATION_MESSAGE );
}
}
class setUICom{
void addButton(String str,JFrame menumain){//这里面的内容好象不起作用
JButton jb1=new JButton(str);
menumain.getContentPane().add(jb1,BorderLayout.NORTH);
}
}
我的程序执行的时候,点"增加一项",按我的设想,因当执行setUICom类的addButton方法。事实上也执行了,因为我加了一个println()在最后,已经显示出来,可是为什么我的frame里没有出现"jb1"呢?
我把addButton里一段直接放到MenuMain 里,就能出现那个button。但我在菜单选增加一项就是不行。
|
private void MenuAddActionPerformed(ActionEvent evt) {
setUICom setuicom=new setUICom();
setuicom.addButton("你好",menumain);
}
-->
private void MenuAddActionPerformed(ActionEvent evt) {
setUICom setuicom=new setUICom();
setuicom.addButton("你好",menumain);
bean8.validate();
}
setUICom setuicom=new setUICom();
setuicom.addButton("你好",menumain);
}
-->
private void MenuAddActionPerformed(ActionEvent evt) {
setUICom setuicom=new setUICom();
setuicom.addButton("你好",menumain);
bean8.validate();
}