Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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 我的JTable没有';我没有出现_Java_Swing_Jtable_Layout Manager_Grid Layout - Fatal编程技术网

Java 我的JTable没有';我没有出现

Java 我的JTable没有';我没有出现,java,swing,jtable,layout-manager,grid-layout,Java,Swing,Jtable,Layout Manager,Grid Layout,我不熟悉JTable,或者GUI,但我被指派在GUI中构建一个接收程序。我设法把基本的东西弄好了,但我的桌子看起来糟透了。我需要关于如何正确显示表格的帮助 public static void main (String[] args) { ArrayList <item> lol= new ArrayList <item>(); item ayam = new item("ayam",5678); item kambing= new

我不熟悉JTable,或者GUI,但我被指派在GUI中构建一个接收程序。我设法把基本的东西弄好了,但我的桌子看起来糟透了。我需要关于如何正确显示表格的帮助

public static void main (String[] args)
{       
    ArrayList <item> lol= new ArrayList <item>();
    item ayam = new item("ayam",5678);
    item kambing= new item("kambing",5014);
    item buaya= new item("buaya",3000);
    item bocoranquiz= new item("bocoranquiz",5000);
    lol.add(ayam);
    lol.add(kambing);
    lol.add(buaya);
    lol.add(bocoranquiz);
    JFrame frame= new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLayout(new GridLayout(3, 0));
    frame.setSize(1000, 1000);
    SimpleDateFormat sdf = new SimpleDateFormat("dd/M/yyyy");
    String date = sdf.format(new Date()); 

    JComboBox combo1= new JComboBox();
    combo1.setPreferredSize(new Dimension(10, 10));
    combo1.addItem(ayam.getname());
    combo1.addItem(kambing.getname());
    combo1.addItem(buaya.getname());
    combo1.addItem(bocoranquiz.getname());
    JLabel label1= new JLabel("Invoice no: ");
    JLabel label2= new JLabel("Invoice Date : " + date);
    JLabel label3= new JLabel("Item name " );
    JLabel label4= new JLabel("Item Price ");
    JLabel label5= new JLabel("Item Quantity : ");
    JPanel panel1= new JPanel ();
    panel1.setLayout(new GridLayout(3,0));
    panel1.add(label1);
    panel1.add(label2);

    class inputListener implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {   
            JComboBox<String> combo= (JComboBox<String>) event.getSource();
            selected= (String) combo.getSelectedItem();             
            alpha=10;        
            if (selected.equals("ayam"))
            {           
                alpha=5678; 
            }       
            else if (selected.equals("kambing"))
            {           
                alpha=5014; 
            }       
            else if (selected.equals("buaya"))
            {           
                alpha=3000; 
            }       
            else if (selected.equals("bocoranquiz"))
            {           
                alpha=5000; 
            }   
            label3.setText("Item name " + selected);
            label4.setText("Item quantity " + alpha);
        }           
    }
    ActionListener inputAct = new inputListener();
    combo1.addActionListener(inputAct);
    panel1.add(combo1);     
    JTextField tf = new JTextField();
    JButton adda = new JButton("Add");
    String[] columnNames= {"Name","Price","Quantity","Total"};
    DefaultTableModel tablemodel= new DefaultTableModel(columnNames,0);
    JTable table = new JTable(tablemodel);      
    JScrollPane scrollPanel = new JScrollPane(table);
    class inputListener2 implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
            quantity= Integer.parseInt(tf.getText());
            double total= alpha * quantity;
            Object[] data= {selected,alpha,quantity,total};
            tablemodel.addRow(data);
        }
    ActionListener inputAct2 = new inputListener2();
    adda.addActionListener(inputAct2);
    JPanel panel2= new JPanel();
    panel2.setLayout(new GridLayout(10,0));
    panel2.add(label3);
    panel2.add(label4);
    panel2.add(label5);
    panel2.add(tf);
    panel2.add(adda);
    panel2.add(scrollPanel);
    frame.add(panel1);
    frame.add(panel2);
    frame.setVisible(true);
}
publicstaticvoidmain(字符串[]args)
{       
ArrayList lol=新的ArrayList();
项目ayam=新项目(“ayam”,5678);
项目分类=新项目(“分类”,5014);
项目buaya=新项目(“buaya”,3000);
项目bocoranquiz=新项目(“bocoranquiz”,5000);
lol.add(ayam);
lol.add(kambing);
lol.add(buaya);
lol.add(bocoranquiz);
JFrame=新JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(新的GridLayout(3,0));
框架。设置尺寸(10001000);
SimpleDataFormat sdf=新的SimpleDataFormat(“dd/M/yyyy”);
字符串date=sdf.format(new date());
JComboBox combo1=新的JComboBox();
combo1.setPreferredSize(新维度(10,10));
combo1.addItem(ayam.getname());
combo1.addItem(kambing.getname());
combo1.addItem(buaya.getname());
combo1.addItem(bocoranquiz.getname());
JLabel标签1=新的JLabel(“发票号”);
JLabel label2=新的JLabel(“发票日期:”+日期);
JLabel标签3=新的JLabel(“项目名称”);
JLabel标签4=新的JLabel(“项目价格”);
JLabel label5=新的JLabel(“项目数量”);
JPanel panel1=新的JPanel();
面板1.设置布局(新网格布局(3,0));
面板1.添加(标签1);
面板1.添加(标签2);
类inputListener实现ActionListener
{
已执行的公共无效操作(操作事件)
{   
JComboBox组合=(JComboBox)event.getSource();
selected=(字符串)combo.getSelectedItem();
α=10;
如果(选定。等于(“ayam”))
{           
α=5678;
}       
else if(选定的。等于(“kambing”))
{           
α=5014;
}       
else if(选定的。等于(“buaya”))
{           
α=3000;
}       
else if(选定的.equals(“bocoranquiz”))
{           
α=5000;
}   
标签3.setText(“项目名称”+选定项);
标签4.setText(“项目数量”+alpha);
}           
}
ActionListener inputAct=新建inputListener();
combo1.addActionListener(inputAct);
面板1.添加(组合1);
JTextField=新的JTextField();
JButton adda=新JButton(“添加”);
String[]columnNames={“名称”、“价格”、“数量”、“总计”};
DefaultTableModel tablemodel=新的DefaultTableModel(columnNames,0);
JTable table=新的JTable(tablemodel);
JScrollPane scrollPanel=新的JScrollPane(表);
类inputListener2实现ActionListener
{
已执行的公共无效操作(操作事件)
{
quantity=Integer.parseInt(tf.getText());
双倍总数=α*数量;
对象[]数据={选定,alpha,数量,总数};
tablemodel.addRow(数据);
}
ActionListener inputAct2=新的inputListener2();
adda.addActionListener(inputAct2);
JPanel panel2=新的JPanel();
面板2.设置布局(新网格布局(10,0));
面板2.添加(标签3);
面板2.添加(标签4);
面板2.添加(标签5);
第2组:添加(tf);
第2组:添加(adda);
面板2.添加(滚动面板);
框架。添加(面板1);
框架。添加(第2组);
frame.setVisible(true);
}

您的代码有点乱,但是,基本问题是您将
网格布局设置为多行,例如

frame.setLayout(new GridLayout(3, 0));
应该是

frame.setLayout(new GridLayout(2, 0));
因为您只向框架添加了两个组件

同样地

panel2.setLayout(new GridLayout(10, 0));
应该是

panel2.setLayout(new GridLayout(6, 0));
请记住,
GridLayout
将容器分成相等的部分,即使行/列中没有任何内容

您可能还需要考虑使用不同的布局管理器,例如“代码> GridBagLayout < /COD>”,或者根据您的基本需求来组合布局。


有关更多详细信息,请参阅。

您的代码有点乱,但基本问题是您的
GridLayout
设置为多行,例如

frame.setLayout(new GridLayout(3, 0));
应该是

frame.setLayout(new GridLayout(2, 0));
因为您只向框架添加了两个组件

同样地

panel2.setLayout(new GridLayout(10, 0));
应该是

panel2.setLayout(new GridLayout(6, 0));
请记住,
GridLayout
将容器分成相等的部分,即使行/列中没有任何内容

您可能还需要考虑使用不同的布局管理器,例如“代码> GridBagLayout < /COD>”,或者根据您的基本需求来组合布局。


有关更多详细信息,请参阅。

您能告诉我们桌子现在是什么样子吗?@JackWhiteIII底部看起来都被压扁了。您能告诉我们桌子现在是什么样子吗?@JackWhiteIII底部看起来都被压扁了