Projeto pequeno Notepad

Olá pessoal tudo bem? Estou tentando criar um pequeno notepad, mas estou com problemas na criação do botão colar… o código que fiz para ele foi esse:

public void colar(){
    
    String text=jTextArea1.getText();    
    if (jTextArea1.getSelectedText()==null){
    text=text+texto;
    jTextArea1.setText(text);
    }
    else {
    String i=jTextArea1.getSelectedText();
    int o=i.length();
    text=text.substring(0, (text.length()-o))+texto;
    jTextArea1.setText(text);
    }
}

a ideia foi o seguinte: eu coloquei um if para que se o usuário clikasse no botão sem que ele tivesse copiado nada, não colasse a palavra “null”; isso funcionou beleza. Dai o else é caso algo estivesse selecionado era pra apagar o que estava selecionado e acrescentar no lugar que estava. Esse código que eu fiz é burro eu sei por que eu programei ele pra contar o tamanho da String selecionada e reduzir do final do texto pro começo. Mas suponhamos que o usuário cole no começo do texto, em vez dele subtituir o que está selecionado ele subtitui o tomando da string do fim pro começo…¬¬
Eu não to conseguindo pensar em nada pra conseguir fazer ele apagar o texto selecionado e colar onde estiver o cursor. Eu acredito que tanha um método que faça isso, qual é? Que manha eu uso pra conseguir isso? Abrigado a todos :smiley: