编码下一个和上一个按钮

Coding the Next and Previous button

我想为下一个和上一个按钮编写代码。我制作了动作侦听器,但不知道如何为下一个和上一个按钮编码。

我的代码如下:

public class panel extends OrderSystem {

    final JTextField items;
    final JTextField number;
    final JTextField cost;
    final JTextField amount;

    public panel() {

        JFrame myFrame = new JFrame();   
        myFrame.setLayout( new FlowLayout() );

        myFrame.setTitle("GUI Demo - ISTE-121");
        myFrame.pack();
        myFrame.setLocation(600,300);
        myFrame.setSize(400,200);
        myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        myFrame.setVisible(true);

        JPanel order = new JPanel();{
            order.setLayout(new GridLayout(5,5,2,2));

            myFrame.add(order, BorderLayout.CENTER);

            order.add(new JLabel("Item no:", SwingConstants.RIGHT));
            order.add(items = new JTextField(3));

            order.add(new JLabel("Number of:", SwingConstants.RIGHT));
            order.add(number = new JTextField(3));

            order.add(new JLabel("Cost", SwingConstants.RIGHT));
            order.add(cost = new JTextField(3));

            order.add(new JLabel("Amount owed:", SwingConstants.RIGHT));
            order.add(amount = new JTextField(10));
            amount.setEditable(false);

            JPanel buttons = new JPanel();
            buttons.setLayout(new GridLayout(1,1,2,2));

            myFrame.add(buttons ,BorderLayout.CENTER);

            JButton calculate;
            buttons.add(calculate=new JButton("Calculate"));

            calculate.addActionListener(new ActionListener() 
                {
                    @Override
                    public void actionPerformed(ActionEvent e) 
                    {
                        // TODO Auto-generated method stub
                        double cost1 = new Double(cost.getText().trim()).doubleValue();
                        double number1 = new Double(number.getText().trim()).doubleValue();

                        double result =  cost1*number1;
                        amount.setText(String.valueOf(result));   

                    }

                });

            JButton save;
            buttons.add(save = new JButton("Save"));

            save.addActionListener(new ActionListener()
                {
                    @Override
                    public void actionPerformed(ActionEvent e) { 



                        try{

                            // Assume default encoding.
                            FileWriter fw = new FileWriter("data.csv",true);
                            BufferedWriter bufferedWriter = new BufferedWriter(fw);


                            bufferedWriter.write("\r\n");

                            bufferedWriter.write("\"ItemCode:\""+"\""+ items.getText() +"\""+",");
                            bufferedWriter.write("\"ItemNumber:\""+"\""+number.getText()+"\""+",");
                            bufferedWriter.write("\"ItemCost:\""+"\""+cost.getText()+"\""+",");
                            bufferedWriter.write("\"AmountOwned:\""+"\""+amount.getText()+"\""+",");

                            bufferedWriter.close();


                        }  

                        catch(IOException ex) {
                            System.out.println(
                                               "Error writing to file '"
                                               +  "'");
                            // Or we could just do this:
                            // ex.printStackTrace();
                        }
                    }}   
                );



            JButton clear;
            buttons.add(clear=new JButton("Clear"));

            clear.addActionListener(new ActionListener() {

                    @Override
                    public void actionPerformed(ActionEvent e) {
                        // TODO Auto-generated method stub
                        items.setText(null);
                        number.setText(null);
                        cost.setText(null);
                        amount.setText(null);
                    }});

            JButton exit;
            buttons.add(exit= new JButton("Exit"));

            exit.addActionListener(new ActionListener()
                {

                    @Override
                    public void actionPerformed(ActionEvent e) 
                    {
                        // TODO Auto-generated method stub
                        System.exit(0);

                    }


                });
        }
        JPanel button = new JPanel();
        {
            button.setLayout(new GridLayout(5,5,2,2));
            myFrame.add(button ,BorderLayout.SOUTH);


            JButton load;
            button.add(load=new JButton("Load"));

            load.addActionListener(new ActionListener() 
                {
                    @Override
                    public void actionPerformed(ActionEvent e) 
                    {
                        // TODO Auto-generated method stub
                        try { 

                            String csvFile = "Documents/workspace/samp/data.csv";

                            //create BufferedReader to read csv file
                            BufferedReader br = new BufferedReader(new FileReader("data.csv"));
                            String line = "";
                            StringTokenizer st = null;

                            int lineNumber = 0; 
                            int tokenNumber = 0;

                            //read comma separated file line by line
                            while ((line = br.readLine()) != null) {
                                lineNumber++;

                                //use comma as token separator
                                st = new StringTokenizer(line, ",");

                                while (st.hasMoreTokens()) {
                                    tokenNumber++;

                                    //display csv values
                                    System.out.print(st.nextToken() + "  ");
                                }

                                System.out.println();

                                //reset token number
                                tokenNumber = 0;
                            }

                        } catch (Exception e1) {
                            System.err.println("CSV file cannot be read : " + e1);
                        }
                    }
                }

                );

            JButton next;
            button.add(next=new JButton("Next>"));

            next.addActionListener(new ActionListener() 
                {
                    @Override
                    public void actionPerformed(ActionEvent e) 
                    {
                        // TODO Auto-generated method stub
                    }

                });

            JButton prev;
            button.add(prev=new JButton("<Prev"));

            prev.addActionListener(new ActionListener() 
                {
                    @Override
                    public void actionPerformed(ActionEvent e) 
                    {
                        // TODO Auto-generated method stub
                    }

                });

        }
    }
}

使用列表来存储数据,所以当你的数据看起来像:

a.csv - b.csv - c.csv

因此,当您阅读 b.csv 时,sp 使用 listIterator,可以使用 iterator.previous() 迭代到上一个,即阅读 a.csv,而 iterator.next() 将引导您阅读下一个文件(转发)即 c.csv.

这意味着您可以使用 dequeue 来维护列表中的上一个和下一个条目。