Sto scrivendo per esercizio una semplice applicazione java che data una stringa in ingresso e due caratteri c1 e c2, cerca c1 nella stringa e lo sostituisce con c2 ed infine stampa la stringa ottenuta.
Il problema è che non riesco ad inserire i widget nella posizione che vorrei io.. in pratica vorrei dare una dimensione fissa al Frame e posizionare i vari widget (2 label, 1 bottone e 4 entry) alle coordinate che voglio io.
Ho provato con il metodo setLocation(WIDTH, WIDTH); chiamato sul widget in questione, dopo averlo creato e prima di aggiungerlo al pannello, ma non riesco a posizionarlo 
Nel caso voleste dare un'occhiata al mio codice:
Classe che eredita da JPanel
codice:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package sostituisci;
import java.awt.event.*;
import javax.swing.*;
/**
*
* @author Gianluca
*/
public class Sostituisci extends JPanel implements ActionListener{
private JTextField entry1;
private JTextField entry2;
private JTextField entry3;
private JTextField entry4;
private JButton button1;
public Sostituisci(){
super();
entry1 = new JTextField(25);
this.add(entry1);
this.add(new JLabel("Vecchio Carattere"));
entry2 = new JTextField(1);
this.add(entry2);
this.add(new JLabel("Nuovo Carattere"));
entry3 = new JTextField(1);
this.add(entry3);
entry4 = new JTextField(25);
entry4.setEditable(false);
this.add(entry4);
button1 = new JButton("Sostituisci");
this.add(button1);
button1.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e){
try{
StringBuilder parola = new StringBuilder(entry1.getText());
char vecchioCarattere = entry2.getText().charAt(0);
char nuovoCarattere = entry3.getText().charAt(0);
for ( int i = 0; i < parola.length(); i++ ){
if ( parola.charAt(i) == vecchioCarattere ){
parola.setCharAt(i, nuovoCarattere);
}
}
entry4.setText(parola.toString());
}
catch(Exception ex){
System.out.println("Inserisci dei valori validi.");
}
}
}
Main
codice:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package sostituisci;
import javax.swing.*;
/**
*
* @author Gianluca
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
JFrame frame = new JFrame("Sostituisci");
Sostituisci panel = new Sostituisci();
frame.add(panel);
frame.setBounds(350, 200, 350, 200);
frame.setResizable(false);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}