Preciso de ajuda com o JFrame

Olá pessoal,estou elaborando um projeto onde preciso informar o nome,codigo,id e salario de uma pessoa,porém não consigo executar um campo de texto para minha variável salário,se puderem me ajudar eu fico realmente agradecido,lá vai o código.

package atividade02;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Atividade02 extends JFrame implements ActionListener{


JLabel lblcodigo,lblnome,lblid,lblsalario;
JButton btngrava,btnabre,btnlimpa,btnfecha;
JTextField txtcodigo,txtnome,txtid,txtsalario;

public Atividade02(){

setTitle("Gravando arquivo txt");
setBounds(250,50,400,160);
getContentPane().setBackground(new Color(150,150,150));
lblcodigo = new JLabel("Codigo");
lblnome = new JLabel("Nome");
lblid = new JLabel("id");
lblsalario = new JLabel("salario");

btngrava = new JButton("Gravar");
btngrava.addActionListener(this);

btnabre = new JButton("Abre");
btnabre.addActionListener(this);

btnlimpa = new JButton("Limpa");
btnlimpa.addActionListener(this);

btnfecha = new JButton("Fecha");
btnfecha.addActionListener(this);

txtcodigo = new JTextField();
txtnome = new JTextField();
txtid = new JTextField();
txtsalario = new JTextField();
setLayout(null);

//Instanciando campos de texto(x,y,larg,alt)
//35+5 onde 5 é espaçamento

lblcodigo.setBounds(10,15,40,20);
lblnome.setBounds(10,40,45,29);
lblid.setBounds(10,65,45,20);
lblsalario.setBounds(8,75,95,29);

//alinhamento com os labels
//tamanho 75 de todos os botões
//10+75=85+10 de espaçamento95+75.... 

btngrava.setBounds(95,100,75,20);
btnfecha.setBounds(180,100,75,20);
btnabre.setBounds(10,100,75,20);
btnlimpa.setBounds(255,100,75,20);

// alinhamento ao lado dos labels

txtcodigo.setBounds(60,15,255,20);
txtnome.setBounds(60,40,255,20);
txtid.setBounds(60,65,255,20);
txtsalario.setBounds(60,40,255,20);

//Não interfere no layout nulo

add(lblcodigo);
add(lblnome);
add(lblid);
add(lblsalario);
add(btngrava);
add(btnabre);
add(btnfecha);
add(btnlimpa);
add(txtnome);
add(txtcodigo);
add(txtid);
add(txtsalario);


}
public void actionPerformed(ActionEvent e){
if(e.getSource() == btnlimpa){
txtnome.setText("");
txtcodigo.setText("");
txtid.setText("");
txtsalario.setText("");
}
if(e.getSource() == btnfecha){
System.exit(0);
}
if(e.getSource() == btngrava){
try{

PrintWriter arq = new PrintWriter(txtcodigo.getText()+"arquivo.txt");
arq.println(txtcodigo.getText());
arq.println(txtnome.getText());
arq.println(txtid.getText());
arq.println(txtsalario.getText());
arq.close();
JOptionPane.showMessageDialog(null, "Arquivo Salvo com Sucesso!");
} 
catch(Exception erro){
JOptionPane.showMessageDialog(null, "Arquivo não foi Salvo .Erro:"+erro.getMessage());
}
if(e.getSource() == btnabre){

try{
String codigo = JOptionPane.showInputDialog("Digite o codigo da pessoa");
BufferedReader arq = new BufferedReader(new FileReader(codigo+"arquivo.txt"));
txtcodigo.setText(arq.readLine());
txtnome.setText(arq.readLine());
txtid.setText(arq.readLine());
txtsalario.setText(arq.readLine());
arq.close();
}
catch(Exception erro){
JOptionPane.showMessageDialog(null,"Erro"+erro.getMessage());
}
}
}
}

public static void main(String[] args) {

JFrame janela = new Atividade02();
janela.setUndecorated(true);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
janela.setVisible(true);

}

}