当前位置: 代码迷 >> Java相关 >> [讨论]关于JDialog的问题
  详细解决方案

[讨论]关于JDialog的问题

热度:249   发布时间:2006-11-25 00:26:40.0
[讨论]关于JDialog的问题

下面是一个信息系统的组件代码,调式了很久都编译不了,在调试过程中发现是JDialog的问题,但改了很久都还是不行
import javax.swing.*;
import javax.swing.JDialog;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class jmenu implements ActionListener {
private JFrame frame=null;
private JMenuBar mymenubar=null;
private JMenu filemenu=null;
private JMenuItem fcon,fto,ffrom,fexit;
private JMenu opmenu=null;
private JMenuItem oin,odel,oup;
private JMenu querymenu=null;
private JMenuItem qgrid,qcard;
private JMenu helpmenu=null;
private JMenuItem helpabout;

public jmenu(JFrame frame){
this.frame=frame;
init();}

public void actionPerformed(ActionEvent e){
String Command=e.getActionCommand();
if(Command.equals("退出"))
System.exit(0);
if(Command.equals("表格")){
JDialog dialog=new JDialog(frame,true);
dialog.setSize(width,height);
dialog.setLocation(x,y);
dialog.setTitle("查询数据");
dialog.getContentpane().add(gridJPanel);
dailog.setVisible(true);}
}

private void init(){
mymenubar=new JMenuBar();
frame.setJMenuBar(mymenubar);
addMenu();
addListener();
frame.setVisible(true);}

private void addListener(){fexit.addActionListener(this);
qgrid.addActionListener(this);}

private void addMenu(){
filemenu=new JMenu("文件");
mymenubar.add(filemenu);
filemenu.add(fcon=new JMenuItem("连接"));
filemenu.addSeparator();
filemenu.add(fto=new JMenuItem("导入数据"));
filemenu.add(ffrom=new JMenuItem("导出数据"));
filemenu.addSeparator();
filemenu.add(fexit=new JMenuItem("退出"));

opmenu=new JMenu("数据操作");
mymenubar.add(opmenu);
opmenu.add(oin=new JMenuItem("添加"));
opmenu.add(odel=new JMenuItem("删除"));
opmenu.add(oup=new JMenuItem("修改"));


querymenu=new JMenu("数据查询");
mymenubar.add(querymenu);
querymenu.add(qgrid=new JMenuItem("表格"));
querymenu.add(qcard=new JMenuItem("卡片"));

helpmenu=new JMenu("帮助");
mymenubar.add(helpmenu);
helpmenu.add(helpabout=new JMenuItem("关于系统"));
}}

[此贴子已经被作者于2006-11-25 0:29:27编辑过]

搜索更多相关的解决方案: JDialog  

----------------解决方案--------------------------------------------------------

就是这段代码有问题,把第二个if删掉就可以编译了,所以应该是那个JDialog的问题吧
public void actionPerformed(ActionEvent e){
String Command=e.getActionCommand();
if(Command.equals("退出"))
System.exit(0);
if(Command.equals("表格")){
JDialog dialog=new JDialog(frame,true);
dialog.setSize(width,height);
dialog.setLocation(x,y);
dialog.setTitle("查询数据");
dialog.getContentpane().add(gridJPanel);
dailog.setVisible(true);}
}


[此贴子已经被作者于2006-11-25 0:31:50编辑过]


----------------解决方案--------------------------------------------------------
楼主,你的主函数在哪啊,没有主函数,你的程序怎么运行啊
----------------解决方案--------------------------------------------------------

上面的只是个组件的代码,所以没主函数,只要能编译出来就能被主函数调用的,如果要运行的话那我就把另外两个文件的代码也发上来吧
import javax.swing.*;
public class jframe{
private JFrame frame;
public jframe(){
CreateMainWindow();
jmenu mymenu=new jmenu(frame);}
private void CreateMainWindow()
{frame=new JFrame("学生信息管理系统");
frame.setSize(400,300);
frame.setLocation(200,200);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}





public class window{
public static void main(String[] args){
jframe myframe=new jframe();}}
只要编译出来1楼的jmenu,再编译jframe,最后编译window就可以运行了,所以jmenu的菜单事件是关键

[此贴子已经被作者于2006-11-25 12:57:29编辑过]


----------------解决方案--------------------------------------------------------
public void actionPerformed(ActionEvent e){
String Command=e.getActionCommand();
if(Command.equals("退出"))
System.exit(0);
if(Command.equals("表格")){
JDialog dialog=new JDialog(frame,true);
dialog.setSize(width,height);
dialog.setLocation(x,y);
dialog.setTitle("查询数据");
dialog.getContentpane().add(gridJPanel);这个在你的类里没有哦!!!
dailog.setVisible(true);}

}
----------------解决方案--------------------------------------------------------