Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GUI框架不显示任何组件_Java_Swing - Fatal编程技术网

Java GUI框架不显示任何组件

Java GUI框架不显示任何组件,java,swing,Java,Swing,这是我的代码,但框架显示一个空窗口,没有错误(语法或其他)。我认为这是JPanel或GridLayout中的一些错误。当我将鼠标放在p1.setLayout(新的GridLayout(2,2))上的GridLayout上时显示“注意:此元素没有附加的源代码,在附加的Javadoc中找不到Javadoc” 这是测试 import javax.swing.JFrame; public class test { public static void main(String[] a

这是我的代码,但框架显示一个空窗口,没有错误(语法或其他)。我认为这是JPanel或GridLayout中的一些错误。当我将鼠标放在
p1.setLayout(新的GridLayout(2,2))上的GridLayout上时显示
“注意:此元素没有附加的源代码,在附加的Javadoc中找不到Javadoc”

这是测试

  import javax.swing.JFrame;


  public class test {

    public static void main(String[] args) {

        menu frame = new menu();
        frame.setTitle("menu");
        frame.setSize(400,400);
        frame.setLocationRelativeTo(null);// Center the frame 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);     
    }
  }
还有我的密码

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class menu extends JFrame{

JButton jbtAdd = new JButton("add");
JButton jbtPrint = new JButton("print");

ArrayList<Product> manu = new ArrayList<Product>();


public void menu(){

    JPanel p1=new JPanel();

    p1.setLayout(new GridLayout(2,2));

    p1.add(new JLabel("add new product"));
    p1.add(jbtAdd);
    p1.add(new JLabel("print menu"));
    p1.add(jbtPrint);

    JPanel p2=new JPanel(new BorderLayout());
    p2.add(new JTextField("MENU"), BorderLayout.NORTH);

    p2.add(p1,BorderLayout.CENTER );

    add(p2, BorderLayout.SOUTH);

    jbtAdd.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            JOptionPaneMultiInput input=new JOptionPaneMultiInput();    
        }
    }); 
};


public class JOptionPaneMultiInput {

    public void JOptionPaneMultiInput(){

    JTextField productField = new JTextField(5);
    JTextField priceField = new JTextField(5);

    JPanel myPanel = new JPanel();
    myPanel.add(new JLabel("enter product"));
    myPanel.add(productField);
    myPanel.add(Box.createHorizontalStrut(15)); // a spacer
    myPanel.add(new JLabel("enter price"));
    myPanel.add(priceField);

    int result=  JOptionPane.showConfirmDialog(null, myPanel, 
         "Please Enter product and price Values", JOptionPane.OK_CANCEL_OPTION);

    String name1= productField.getText();

    double price1=Double.parseDouble(priceField.getText());

    if (result == JOptionPane.OK_OPTION) {            
       Product name  = new Product(name1, price1);
         manu.add(name);
    } 

  }
}

private class Product{

    private String name = "noname";
    private Double price=new Double(100);

    public Product(String name1, double price1) {
        // TODO Auto-generated constructor stub
    }

    public void Product(){
        };

    public void Product(String name,double price)
    {
        this.name=name;
        this.price=price;
    };

    public double getPrice(){
    return price;}

    public void setPrice(Double p){
        price=p;}

    public String getName(){
        return name;}

    public void setName(String n){
        name=n;}

  } 
}
导入java.awt.BorderLayout;
导入java.awt.GridLayout;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.util.ArrayList;
导入javax.swing.Box;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JOptionPane;
导入javax.swing.JPanel;
导入javax.swing.JTextField;
公共类菜单扩展了JFrame{
JButton jbtAdd=新JButton(“添加”);
JButton jbtPrint=新的JButton(“打印”);
ArrayList manu=新的ArrayList();
公共无效菜单(){
JPanel p1=新的JPanel();
p1.设置布局(新网格布局(2,2));
p1.添加(新JLabel(“添加新产品”);
p1.添加(jbtAdd);
p1.添加(新的JLabel(“打印菜单”);
p1.添加(jbtPrint);
JPanel p2=新的JPanel(新的BorderLayout());
p2.添加(新JTextField(“菜单”),BorderLayout.NORTH;
p2.添加(p1,BorderLayout.CENTER);
添加(p2,南部边界布局);
jbtAdd.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
JOptionPaneMultiInput=新的JOptionPaneMultiInput();
}
}); 
};
公共类JOptionPaneMultiInput{
public void JOptionPaneMultiInput(){
JTextField productField=新的JTextField(5);
JTextField priceField=新的JTextField(5);
JPanel myPanel=新的JPanel();
添加(新JLabel(“输入产品”);
myPanel.add(productField);
myPanel.add(Box.createHorizontalStruct(15));//一个垫片
添加(新JLabel(“输入价格”);
myPanel.add(priceField);
int result=JOptionPane.showConfirmDialog(null,myPanel,
“请输入产品和价格值”,作业窗格。确定\取消\选项);
字符串名称1=productField.getText();
double price1=double.parseDouble(priceField.getText());
如果(result==JOptionPane.OK_选项){
产品名称=新产品(名称1,价格1);
制造添加(名称);
} 
}
}
私有类产品{
私有字符串name=“noname”;
私人双倍价格=新双倍(100);
公共产品(字符串名称1,双倍价格1){
//TODO自动生成的构造函数存根
}
公共产品(){
};
公共无效产品(字符串名称,双倍价格)
{
this.name=name;
这个。价格=价格;
};
公开双价{
返回价格;}
公共无效设定价格(双p){
价格=p;}
公共字符串getName(){
返回名称;}
公共void集合名(字符串n){
name=n;}
} 
}

您当前在构造函数中有一个额外的
void
关键字,有效地使其成为一个方法,因此它永远不会被调用。替换

public void menu() {

同样,对于
产品
,更换

public void Product() {


旁白:Java表示类名以大写字母开头,这给了您一个
菜单
类。

您当前在构造函数中有一个额外的
void
关键字,有效地使它成为一个方法,因此它永远不会被调用。替换

public void menu() {

同样,对于
产品
,更换

public void Product() {


旁白:Java表示类名以大写字母开头,这给了您一个
菜单
类。

因为约定类以大写字母开头,所以最好使用
Test
菜单
作为您的名称。因为约定类以大写字母开头,因此,最好使用
Test
Menu
作为您的名字。Tested&此处显示的所有组件。确保您已经清理了项目,并且没有针对旧的类文件运行。Tested&此处显示的所有组件。确保已清理项目,并且未针对旧类文件运行。