各位帮看下,swing显示不了菜单了(java)
packagefirst;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassT...
package first;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Test801 extends JFrame
implements ActionListener
{
private JButton j01=new JButton("bu01");
private JButton j02=new JButton("bu02");
private JButton j03=new JButton("bu03");
private JButton j10=new JButton("bu10");
private JButton j20=new JButton("bu20");
private JButton j30=new JButton("bu30");
public static void main(String[] args)
{
Test801 frame=new Test801();
}
public Test801()
{
JFrame myFrame=new JFrame("Test801");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setSize(400,300);
JMenuBar mb=new JMenuBar();
setJMenuBar(mb);
JMenu m=new JMenu("文件");
mb.add(m);
JMenuItem mi=new JMenuItem("new");
m.add(mi);
myFrame.setVisible(true);
myFrame.setLayout(new FlowLayout());
JPanel p1=new JPanel();
JPanel p2=new JPanel();
p1.setLayout(new FlowLayout());
p2.setLayout(new FlowLayout());
j01.addActionListener( this);
j02.addActionListener(this);
j03.addActionListener( this);
j10.addActionListener( this);
j20.addActionListener(this);
j30.addActionListener( this);
p1.add(j01);
p1.add(j02);
p1.add(j03);
p2.add(j10);
p2.add(j20);
p2.add(j30);
myFrame.add(p1);
myFrame.add(p2);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==j01)
{
System.out.println("The bu01 button is clicked");
}
else if (e.getSource()==j02)
{
System.out.println("The bu02 button is clicked");
}
else if (e.getSource()==j03)
{
System.out.println("The bu03 button is clicked");
}
else if (e.getSource()==j10)
{
System.out.println("The bu10 button is clicked");
}
else if (e.getSource()==j20)
{
System.out.println("The bu20 button is clicked");
}
else if (e.getSource()==j30)
{
System.out.println("The bu30 button is clicked");
}
}
}
这个我在里面加的菜单不显示咋回事啊,谢谢 展开
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Test801 extends JFrame
implements ActionListener
{
private JButton j01=new JButton("bu01");
private JButton j02=new JButton("bu02");
private JButton j03=new JButton("bu03");
private JButton j10=new JButton("bu10");
private JButton j20=new JButton("bu20");
private JButton j30=new JButton("bu30");
public static void main(String[] args)
{
Test801 frame=new Test801();
}
public Test801()
{
JFrame myFrame=new JFrame("Test801");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setSize(400,300);
JMenuBar mb=new JMenuBar();
setJMenuBar(mb);
JMenu m=new JMenu("文件");
mb.add(m);
JMenuItem mi=new JMenuItem("new");
m.add(mi);
myFrame.setVisible(true);
myFrame.setLayout(new FlowLayout());
JPanel p1=new JPanel();
JPanel p2=new JPanel();
p1.setLayout(new FlowLayout());
p2.setLayout(new FlowLayout());
j01.addActionListener( this);
j02.addActionListener(this);
j03.addActionListener( this);
j10.addActionListener( this);
j20.addActionListener(this);
j30.addActionListener( this);
p1.add(j01);
p1.add(j02);
p1.add(j03);
p2.add(j10);
p2.add(j20);
p2.add(j30);
myFrame.add(p1);
myFrame.add(p2);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==j01)
{
System.out.println("The bu01 button is clicked");
}
else if (e.getSource()==j02)
{
System.out.println("The bu02 button is clicked");
}
else if (e.getSource()==j03)
{
System.out.println("The bu03 button is clicked");
}
else if (e.getSource()==j10)
{
System.out.println("The bu10 button is clicked");
}
else if (e.getSource()==j20)
{
System.out.println("The bu20 button is clicked");
}
else if (e.getSource()==j30)
{
System.out.println("The bu30 button is clicked");
}
}
}
这个我在里面加的菜单不显示咋回事啊,谢谢 展开
2个回答
展开全部
你在构造器中又新建了个JFrame 这样不行 改掉就好了
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Test801 extends JFrame
implements ActionListener
{
private JButton j01=new JButton("bu01");
private JButton j02=new JButton("bu02");
private JButton j03=new JButton("bu03");
private JButton j10=new JButton("bu10");
private JButton j20=new JButton("bu20");
private JButton j30=new JButton("bu30");
public static void main(String[] args)
{
Test801 frame=new Test801();
}
public Test801()
{
setTitle("Test801");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400,300);
JMenuBar mb=new JMenuBar();
setJMenuBar(mb);
JMenu m=new JMenu("文件");
mb.add(m);
JMenuItem mi=new JMenuItem("new");
m.add(mi);
setVisible(true);
setLayout(new FlowLayout());
JPanel p1=new JPanel();
JPanel p2=new JPanel();
p1.setLayout(new FlowLayout());
p2.setLayout(new FlowLayout());
j01.addActionListener( this);
j02.addActionListener(this);
j03.addActionListener( this);
j10.addActionListener( this);
j20.addActionListener(this);
j30.addActionListener( this);
p1.add(j01);
p1.add(j02);
p1.add(j03);
p2.add(j10);
p2.add(j20);
p2.add(j30);
add(p1);
add(p2);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==j01)
{
System.out.println("The bu01 button is clicked");
}
else if (e.getSource()==j02)
{
System.out.println("The bu02 button is clicked");
}
else if (e.getSource()==j03)
{
System.out.println("The bu03 button is clicked");
}
else if (e.getSource()==j10)
{
System.out.println("The bu10 button is clicked");
}
else if (e.getSource()==j20)
{
System.out.println("The bu20 button is clicked");
}
else if (e.getSource()==j30)
{
System.out.println("The bu30 button is clicked");
}
}
}
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Test801 extends JFrame
implements ActionListener
{
private JButton j01=new JButton("bu01");
private JButton j02=new JButton("bu02");
private JButton j03=new JButton("bu03");
private JButton j10=new JButton("bu10");
private JButton j20=new JButton("bu20");
private JButton j30=new JButton("bu30");
public static void main(String[] args)
{
Test801 frame=new Test801();
}
public Test801()
{
setTitle("Test801");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400,300);
JMenuBar mb=new JMenuBar();
setJMenuBar(mb);
JMenu m=new JMenu("文件");
mb.add(m);
JMenuItem mi=new JMenuItem("new");
m.add(mi);
setVisible(true);
setLayout(new FlowLayout());
JPanel p1=new JPanel();
JPanel p2=new JPanel();
p1.setLayout(new FlowLayout());
p2.setLayout(new FlowLayout());
j01.addActionListener( this);
j02.addActionListener(this);
j03.addActionListener( this);
j10.addActionListener( this);
j20.addActionListener(this);
j30.addActionListener( this);
p1.add(j01);
p1.add(j02);
p1.add(j03);
p2.add(j10);
p2.add(j20);
p2.add(j30);
add(p1);
add(p2);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==j01)
{
System.out.println("The bu01 button is clicked");
}
else if (e.getSource()==j02)
{
System.out.println("The bu02 button is clicked");
}
else if (e.getSource()==j03)
{
System.out.println("The bu03 button is clicked");
}
else if (e.getSource()==j10)
{
System.out.println("The bu10 button is clicked");
}
else if (e.getSource()==j20)
{
System.out.println("The bu20 button is clicked");
}
else if (e.getSource()==j30)
{
System.out.println("The bu30 button is clicked");
}
}
}
展开全部
好象最近犯这个错误的人比较多。
GUI的程序,一般程序架构是设计继承自JFrame或Frame的用户类,组件都做为类成员来声明。
这样的好处是,创建一个这样的类实例,本身就是个JFrame或Frame对象,可对其直接操作,不用额外另行创建窗口。而且结构清楚。
在类的构造函数中初始化界面。
主函数只要new一个实例就可以了。
你的程序是继承了,可又创建了新窗口,那界面上的组件到底是放到自身上,还是新窗口上?要显示谁?又浪费,又出错。
不要创建新窗口,直接在自身上操作就行了。
GUI的程序,一般程序架构是设计继承自JFrame或Frame的用户类,组件都做为类成员来声明。
这样的好处是,创建一个这样的类实例,本身就是个JFrame或Frame对象,可对其直接操作,不用额外另行创建窗口。而且结构清楚。
在类的构造函数中初始化界面。
主函数只要new一个实例就可以了。
你的程序是继承了,可又创建了新窗口,那界面上的组件到底是放到自身上,还是新窗口上?要显示谁?又浪费,又出错。
不要创建新窗口,直接在自身上操作就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询