Java if 语句不会运行 - 测试 substr(0,1) 是否 == 00

标签 java swing user-interface text-files random-access

我有一个随机访问文件,保存这种格式的记录 "00, , " - 我想要做的是从随机访问文件中读取并检查是否有条目在特定位置(如下面的代码所示)。读取记录很好,但是当它读取带有 substr(0, 1) 的记录时,它仍然会输出 文本字段 GUIS,它通常会保存我需要的值(日期、时间、和客户名称)。我尝试将 substr 更改为 values[0],这是一个分割变量的数组,其中保存了他们搜索的特定position 的值为了。 s - 这是保存该行的变量

我的 Java 文件 - fileWriter.txt randomAccess 文件

public class readRandomDataFile extends JFrame implements ActionListener{
    
    private static Path file = Paths.get("fileWriter.txt");
    private static String s = "00,          ,  "
            + System.getProperty("line.separator");
    private static FileChannel fc = null;
    private static int RECSIZE = s.length();
    
    
    
    private static JButton submit;
    private static JLabel output;
    private static JLabel bankDetails;
//    private static JTextField txtClient = new JTextField("", 20);
    private static JTextField txtDate = new JTextField("",6);
    private static JTextField txtClient = new JTextField("",15);
    private static JTextField txtHour = new JTextField("",6);


//    private static JTextField txtHour = new JTextField("",6);
    
    private static JLabel lblClient = new JLabel("Client");
    private static JLabel lblDate = new JLabel("Date");
    private static JLabel lblHour = new JLabel("Hour");
    private static JLabel noResult = new JLabel("");
    private static JLabel lblHeading1 = new JLabel("<html><h1>Meeting Calendar</h1></html>");
    private static JLabel lblHeading2 = new JLabel("<html><h2>Enter this months appointment</h2></html>");
    
    private int date;

    
   public readRandomDataFile(){
        super("Read Date File");
        setSize(300,300);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        
        
        output = new JLabel();
        submit = new JButton("Submit");
        
        bankDetails = new JLabel();
        setLayout(new FlowLayout());
        
        add(lblHeading1);
        add(lblHeading2);
        
//        add(lblDate);
//        add(txtDate);
//        txtClient.addActionListener(this);
        
        add(lblDate);
        add(txtDate);
        txtDate.addActionListener(this);

//        add(lblHour);
//        add(txtHour);
//        txtHour.addActionListener(this);
                
        
        add(submit);
        submit.addActionListener(this);
        
        add(output);
           
   
    } 
    public void actionPerformed(ActionEvent e){
        date = Integer.parseInt(txtDate.getText());
        Object source = e.getSource();
        
        String strID = "";
        
        if(source == submit){
            byte[] data = s.getBytes();
            ByteBuffer buffer = ByteBuffer.wrap(data);
            try{
                fc = (FileChannel)Files.newByteChannel(file, READ, WRITE);
                strID = txtDate.getText();
                    buffer = ByteBuffer.wrap(data);
                    fc.position(date * RECSIZE);
                    fc.read(buffer);

                    s = new String(data);
                    
                    String[] values = s.split(",", -1);
                    if(s.substring(0,1).equals(00)){
                        noResult.setText("No Results Found");
                    }
                    else{
                            output.setText(values[0]);
                            output.setVisible(false);
                            add(lblClient);
                            add(txtClient);
                            add(lblHour);
                            add(txtHour);
                            txtClient.setText(values[1]);
                            txtHour.setText(values[2]);
                       //output.setText("Info for ");
                    }
                fc.close();            
            }
            catch(IOException er){
                System.out.println("Error connecting to or reading to file");
            }
        }
        }
    public static void main(String[] args){
        readRandomDataFile one = new readRandomDataFile();
        one.setVisible(true);

//        int id;
//        String strID = "";
//        double fee;

        }
    
       }

最佳答案

解决这个问题的方法只是简单地改变

 if (s.substring(0,1).equals("00")) {
     noResult.setText("No Results Found");
 }

TO - 我将 substr(0,1) 更改为 (0,2)

if (s.substring(0,2).equals("00")) {
    noResult.setText("No Results Found");
}

还将 noResult 的 GUI 添加到 JFRAME add(noResult)

关于Java if 语句不会运行 - 测试 substr(0,1) 是否 == 00,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29980867/

相关文章:

java - hibernate加速插入

Java JFrame 矩形

java - 解决 Swingworker 应用程序中的并发修改异常

java - 检测屏幕上的鼠标移动

python - 如何在 python 中的 GUI 中创建 RadioButton?

java - 停止日期去掉零

java - 在 Java 中返回一个值

java - 在 servlet 容器启动后立即调用对 localhost 的请求

Java Swing JButton 未显示在 JPanel 上

java - Jtables(数组常量初始值设定项)java