Javaのプログラムを勉強中で、テキストフィールドに入力した数字を取得しようとしているのですが、
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
が発生してしまいます。
他の質問サイトにて私の質問と類似した質問に対し「型があっていないため起きている」、といった指摘がなされていたのですが、エラーが発生している68行目でそのようなミスは起きていないようで困っています。デバッガで68行目にブレークポイントを設定してActionEvent型の変数eの内容を確認したところ、入力した値の情報が含まれていることが確認できました。
なぜエラーが起きているのか、またどうすればバグをなくせるのか、ご教授願います。

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import javax.swing.event.*;

public class PrintWindow extends JFrame implements ChangeListener, ActionListener{
    JSlider r1Slider, r2Slider;
    JTextField r1box, r2box;
    public static void main(String args[]){
        //タイマーIC 555の周辺部品の値を決めて出力を求める       
        PrintWindow IC555 = new PrintWindow();
        IC555.setLocationRelativeTo(null);        //画面中央にセットする
        IC555.setVisible(true);       //画面に表示する
    }
    PrintWindow(){
        int initRValue = 1;      //各値の初期値

        setTitle("IC555");       
        setSize(600, 400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   

        //抵抗R1用のスライダの初期設定
        JSlider r1Slider = new JSlider(1, 1000, initRValue);     //最小値1, 最大値1000, 初期値1 
        r1Slider.addChangeListener(this);

        //抵抗R1の数値を表示かつ直接入力できるテキストボックス
        JTextField r1Box = new JTextField(String.valueOf(initRValue), 5);
        r1Box.addActionListener(this);  

        //抵抗R2用のスライダの初期設定
        JSlider r2Slider = new JSlider(1, 1000, 1);     //最小値1, 最大値1000, 初期値1


        //抵抗R1の数値を表示かつ直接入力できるテキストボックス
        JTextField r2Box = new JTextField(String.valueOf(initRValue), 5);
        r2Box.addActionListener(this);

        //スライダを表示するパネル
        JPanel SlidersPanel = new JPanel();   
        SlidersPanel.add(r1Slider);
        SlidersPanel.add(r2Slider);

        //テキストボックスを表示するパネル
        JPanel BoxPanel = new JPanel();
        BoxPanel.add(r1Box);
        BoxPanel.add(r2Box);


        //各パネルを配置

        getContentPane().add(BoxPanel, BorderLayout.SOUTH); 
        getContentPane().add(SlidersPanel, BorderLayout.BEFORE_FIRST_LINE);       
    }

    //抵抗の値を入力するスライダが移動されたときに呼び出される
    public void stateChanged(ChangeEvent e){
        //抵抗R1のスライダが移動されたとき、R1のボックスの内容をスライダの値と一致させる
        if(e.getSource() == r1Slider){
            r1box.setText(Integer.toString(r1Slider.getValue()));
        }
    }

    //抵抗の値を入力するボックスの内容が変更されたとき(Enterが押されたとき)呼び出される
    public void actionPerformed(ActionEvent e){
        //System.out.println("[DEBUG] actionPerformed function arrived");
        System.out.println(r1box.getText());
        //System.out.println("[DEBUG] r1 =" + r1box.getText() + "r2 =" + r2box.getText());
        /*r1Slider.setValue(Integer.valueOf(r1box.getText()));   
        r2Slider.setValue(Integer.valueOf(r2box.getText()));*/
    } 
}