Problema no return (RESOLVIDO)

Ola pessoal:

Então é o seguinte eu estou a criar botoes com o nome do numero de quartos de um hotel que vai buscar a base de dados:

public class Quartos extends javax.swing.JPanel implements ActionListener{
        
        
        int NumBotoes=12;
        JButton botoes[];
        QuartoDAO dao = new QuartoDAO();
        List nome = dao.obterQuartosNomes();
        String data[] = obterVector(nome);      
        
    /** Creates a new instance of Quartos */
    public Quartos() {
        setLayout(new GridLayout(5,5,13,14));
        botoes=new JButton[NumBotoes];
        for(int k=0;k<botoes.length;k++)
        {
            botoes[k]=new JButton(labels[k]);
            botoes[k].setSize(26,16);
            botoes[k].setBackground(new java.awt.Color(255, 0, 0));
            botoes[k].setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
            botoes[k].setBorderPainted(false);
            botoes[k].setOpaque(true);
            botoes[k].addActionListener(this);
            add(botoes[k]);
        }
        this.setBackground(Color.GRAY);
   }
    
    public void actionPerformed(ActionEvent e) {
        String LabelBotao=((JButton)e.getSource()).getText();
        System.out.println(LabelBotao);
    }

    private String[] obterVector(List nome) {
        String data2[];
        int i=0;
        for (Object elem : nome) {
            String teste = new String();
            Quarto qua = (Quarto) elem;
            Vector row = new Vector();
            teste = qua.getNumero();
            data2[i] = teste;
            i=i+1;
        }
      return data2[];
    }
    
}

para ir buscar a base de dados tenho

public List obterQuartosNomes() {
        try {
            Connection con = Connection.getInstance();
            java.sql.Connection connect = con.getConnection();
            PreparedStatement st = connect.prepareStatement("SELECT * FROM quarto");
            ResultSet set = st.executeQuery();
            List list = new ArrayList();
            while (set.next()) {
                Quarto qua = new Quarto();
                qua.setNumero(set.getString("numero"));
                list.add(qua);
            }
            return list;
        }catch (Exception e){    
        JOptionPane.showMessageDialog(null,"Erro ao obter os dados.");
        return null;
        }
    }

Dá erro em return data2[];

Experimenta instanciar o array (data2) que deve resolver o problema:

data2 = new String[nome.size()];

s4nchez Ola, esta dizendo para fazer algo deste genero?

private String[] obterVector(List nome) {
        String data2[] = new String[nome.size()];;
        int i=0;
        for (Object elem : nome) {
            String teste = new String();
            Quarto qua = (Quarto) elem;
            Vector row = new Vector();
            teste = qua.getNumero();
            data2[i] = teste;
            i=i+1;
        }
      return data2[];
    }

é que continua a dar erro em return data2[]

obrigado pela sua resposta.

Usa:

return data2;

Você já declarou o array. Depois disso não precisa ficar repetindo o []

ya cara voce tem razao, nem me lembrei, o codigo esta funcionando agora perfeitamente, obrigadao :wink: