空着身体等待一段时间

问题描述

我有一个Jtextfield和一个Jbutton,按下Jbutton会将值放入一个int或字符串中,并将gettingentry更改为1。我想要的是等待输入的内容,因此我等待gettingentry到达1。但是当我有一段时间没有身体(我想要什么)时,它永远不会离开那一会儿。我尝试将System.out.println(gettingentry + " ; " + entry);放到一会儿看一下值是什么,也许是某些原因阻止了gettingentry达到1,但这使一切正常。问题是,我不明白为什么当我有空的那一刻时,它不起作用,我不需要最后总是在控制台中始终显示这些值,但是它可以帮助我的程序工作。 >

这是我的Jbutton的工作方式:

select.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent ae) {
        String getValue = textfield.getText();
        try {
            entry = Integer.parseInt(getValue);
            String sendback = "entry : " + entry;
            logger.log(Level.INFO,sendback);
        } catch (Exception e) {
            entrystr = getValue;
            logger.log(Level.INFO,entrystr);
        }
        textfield.setText("");
        gettingentry=1;
    }
});

这是我的一段时间:

gettingentry=0;
while (gettingentry==0); {
    //System.out.println(gettingentry + " ; " + entry);
}
int viewid = entry;
gettingentry = 0;

这是整个.java,一切正常,但是我想每次等待一个值时都去掉System.out.println(gettingentry + " ; " + entry);。顺便说一句,如果写得不好,我还是个乞in:


package net.jpatest;

import javax.persistence.*;
import java.util.logging.*;
import java.util.Scanner;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class AlbumManager {
    static EntityManagerFactory factory;
    static EntityManager entityManager;
    static Logger logger = Logger.getLogger(AlbumManager.class.getName());
    static Scanner scanner = new Scanner(system.in);
    static int etat;
    static int entry = 0;
    static JFrame f = new JFrame("Music");
    static String entrystr;
    static JTextArea textarea = new JTextArea(10,30);
    static int gettingentry = 0;

    public static void main(String[] args) {
        begin();

        int run = 1;
        int etatmenu = 1;
        while (run == 1) {
            if (etatmenu == 1) {
                logger.log(Level.INFO,"1: View album\n2: Create album\n3: Delete album\n4: Update album\n5: Exit");
                textarea.setText("1: View album\n2: Create album\n3: Delete album\n4: Update album\n5: Exit");
                etatmenu = 0;
            }
            etat = entry;

            // etat = scanner.nextInt();
            // scanner.nextLine();
            switch (etat) {
            case 1:
                gettingentry = 0;
                viewalbum();
                etatmenu = 1;
                etat = 0;
                entry = 0;
                break;
            case 2:
                createalbum();
                update();
                etatmenu = 1;
                etat = 0;
                entry = 0;
                break;
            case 3:
                deletealbum();
                update();
                etatmenu = 1;
                etat = 0;
                entry = 0;
                break;
            case 4:
                updatealbum();
                update();
                etatmenu = 1;
                etat = 0;
                entry = 0;
                break;
            case 5:
                run = 0;
                etatmenu = 1;
                etat = 0;
                entry = 0;
                break;
            default:
                break;
            }

        }

        end();
    }

    private static void update() {
        entityManager.getTransaction().commit();
        entityManager.getTransaction().begin();
    }

    private static void end() {
        entityManager.getTransaction().commit();
        entityManager.close();
        factory.close();
        scanner.close();
        f.dispose();
    }

    private static void begin() {
        factory = Persistence.createEntityManagerFactory("Albumunit");
        entityManager = factory.createEntityManager();
        entityManager.getTransaction().begin();

        f.setSize(400,250);
        f.setLocation(300,200);

        JPanel panel = new JPanel(); // the panel is not visible in output
        JButton select = new JButton("OK");
        JButton quit = new JButton("Quit");
        JRootPane rootPane = f.getRootPane();
        rootPane.setDefaultButton(select);
        JTextField textfield = new JTextField(20);
        panel.add(textarea);
        panel.add(textfield);
        panel.add(select);
        panel.add(quit);

        f.getContentPane().add(BorderLayout.CENTER,panel);

        quit.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                System.exit(0);

            }
        });

        select.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                String getValue = textfield.getText();
                try {
                    entry = Integer.parseInt(getValue);
                    String sendback = "entry : " + entry;
                    logger.log(Level.INFO,sendback);
                } catch (Exception e) {
                    entrystr = getValue;
                    logger.log(Level.INFO,entrystr);
                }
                textfield.setText("");
                gettingentry = 1;
            }
        });

        f.setVisible(true);
    }

    private static void createalbum() {
        Album newalbum = new Album();
        int newid = (int) getnbofalbum() + 1;
        newalbum.setAlbumid(newid);
        logger.log(Level.INFO,"Enter the name of the album :");
        textarea.setText("Enter the name of the album :");
        // String updatealbumname = scanner.nextLine();

        gettingentry = 0;
        while (gettingentry == 0) {
            System.out.println(gettingentry + " ; " + entry);
            
        }
        gettingentry = 0;
        String updatealbumname = entrystr;

        newalbum.setAlbumname(updatealbumname);
        logger.log(Level.INFO,"Enter the group of the album :");
        textarea.setText("Enter the group of the album :");

        gettingentry = 0;
        while (gettingentry == 0) {
            System.out.println(gettingentry + " ; " + entry);
            
        }
        gettingentry = 0;
        String updatealbumgroup = entrystr;
        newalbum.setAlbumgroup(updatealbumgroup);
        logger.log(Level.INFO,"Enter the length of the album :");
        textarea.setText("Enter the length of the album :");

        gettingentry = 0;
        while (gettingentry == 0) {
            System.out.println(gettingentry + " ; " + entry);
        }
        gettingentry = 0;
        int updatealbumlength = entry;
        newalbum.setAlbumlength(updatealbumlength);
        entityManager.persist(newalbum);
        String createreturn = "New album created,\nPress Enter to return to the menu";
        textarea.setText(createreturn);
        gettingentry = 0;
        while (gettingentry == 0) {
            System.out.println(gettingentry + " ; " + entry);
            // textarea.setText("Enter the ID of the album you want to view (0 to see
            // all):");
        }
        gettingentry = 0;

    }

    private static void updatealbum() {
        logger.log(Level.INFO,"Enter the ID of the album you want to update:");
        textarea.setText("Enter the ID of the album you want to update:");
        gettingentry = 0;
        while (gettingentry == 0) {
            System.out.println(gettingentry + " ; " + entry);
        }
        gettingentry = 0;
        Album existalbum = new Album();
        existalbum.setAlbumid(entry);
        
        logger.log(Level.INFO,"Enter the name of the album you want to update:");
        textarea.setText("Enter the name of the album you want to update:");
        
        while (gettingentry == 0) {
            System.out.println(gettingentry + " ; " + entry);
        }
        gettingentry = 0;
        existalbum.setAlbumname(entrystr);
        logger.log(Level.INFO,"Enter the group of the album you want to update:");
        textarea.setText("Enter the group of the album you want to update:");
        
        while (gettingentry == 0) {
            System.out.println(gettingentry + " ; " + entry);
        }
        gettingentry = 0;
        existalbum.setAlbumgroup(entrystr);
        logger.log(Level.INFO,"Enter the length of the album you want to update:");
        textarea.setText("Enter the length of the album you want to update:");
        gettingentry = 0;
        while (gettingentry == 0) {
            System.out.println(gettingentry + " ; " + entry);
        }
        gettingentry = 0;
        
        existalbum.setAlbumlength(entry);
        entityManager.merge(existalbum);

        String updatereturn = "Album edited,\nPress Enter to return to the menu";
        textarea.setText(updatereturn);
        gettingentry = 0;
        while (gettingentry == 0) {
            System.out.println(gettingentry + " ; " + entry);
            // textarea.setText("Enter the ID of the album you want to view (0 to see
            // all):");
        }
        gettingentry = 0;
    }

    private static void viewalbum() {
        logger.log(Level.INFO,"Enter the ID of the album you want to view (0 to see all):");
        textarea.setText("Enter the ID of the album you want to view (0 to see all):");
        // int viewid = scanner.nextInt();
        // scanner.nextLine();

        gettingentry = 0;
        while (gettingentry == 0) {
            System.out.println(gettingentry + " ; " + entry);
            // textarea.setText("Enter the ID of the album you want to view (0 to see
            // all):");
        }
        gettingentry = 0;
        int viewid = entry;

        int i = 1;
        int nbofalbumint = (int) getnbofalbum();
        String writeswing = "";
        if (viewid <= 0) {

            while (i <= nbofalbumint) {
                Album album = entityManager.find(Album.class,i);
                String write = album.getAlbumid() + ",";
                logger.log(Level.INFO,write);
                logger.log(Level.INFO,album.getAlbumname());
                logger.log(Level.INFO,album.getAlbumgroup());
                String write2 = album.getAlbumlength() + ".";
                logger.log(Level.INFO,write2);
                writeswing += album.getAlbumid() + ": " + album.getAlbumname() + "," + album.getAlbumgroup() + ","
                        + album.getAlbumlength() + ".\n";
                i++;
            }

        } else if (viewid <= nbofalbumint) {
            Album album = entityManager.find(Album.class,viewid);
            logger.log(Level.INFO,album.getAlbumname());
            logger.log(Level.INFO,album.getAlbumgroup());
            String write3 = album.getAlbumlength() + ".";
            logger.log(Level.INFO,write3);
            writeswing += album.getAlbumid() + ": " + album.getAlbumname() + ","
                    + album.getAlbumlength() + ".\n";
        } else {
            logger.log(Level.INFO,"Please enter a valid ID.");
        }
        writeswing += "Press Enter to return to the menu";
        textarea.setText(writeswing);
        gettingentry = 0;
        while (gettingentry == 0) {
            System.out.println(gettingentry + " ; " + entry);
        }
        gettingentry = 0;
    }

    private static void deletealbum() {
        long nbofalbum = getnbofalbum();
        logger.log(Level.INFO,"Enter the ID of the album you want to delete:");
        textarea.setText("Enter the ID of the album you want to delete:");
        gettingentry = 0;
        while (gettingentry == 0) {
            System.out.println(gettingentry + " ; " + entry);
        }
        gettingentry = 0;
        int delid=entry;
        Album reference = entityManager.getReference(Album.class,delid);
        entityManager.remove(reference);
        update();
        delid++;
        while (delid <= nbofalbum) {
            updatedeletealbum(delid);
            update();
            delid++;
        }
        int nbofalbumint = (int) nbofalbum;
        Album reference2 = entityManager.getReference(Album.class,nbofalbumint);
        entityManager.remove(reference2);
        textarea.setText("Press Enter to return to the menu.");
        gettingentry = 0;
        while (gettingentry == 0) {
            System.out.println(gettingentry + " ; " + entry);
        }
        gettingentry = 0;
    }

    private static void updatedeletealbum(int updateid) {
        Album existalbum = new Album();
        Album album = entityManager.find(Album.class,updateid);
        int newupdateid = updateid - 1;
        existalbum.setAlbumid(newupdateid);
        existalbum.setAlbumname(album.getAlbumname());
        existalbum.setAlbumgroup(album.getAlbumgroup());
        existalbum.setAlbumlength(album.getAlbumlength());
        entityManager.merge(existalbum);
    }

    private static long getnbofalbum() {

        String jpql = "select count(*) from Album";
        Query query = entityManager.createquery(jpql);
        long nbofalbum = (long) query.getSingleResult();
        String write4 = "nbofalbum :" + nbofalbum;
        logger.log(Level.INFO,write4);
        return nbofalbum;
    }
}


解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)