Ajuda em ordenação bolha+vetor

estou com um grande problema…to a semanas fazendo esse fonte e não ta funcionando…o problema está na ordenação do array…
mas não sei em que parte…alguem pode me ajudar???

obrigado


import javax.swing.*;

    class  orcamento  {
   	private String nome_cliente, nome_item[]=new String[100];
   	private int qtde;
   	private double preco[]=new double[100];
   	private double custo=0;



   public orcamento() {
   	nome_cliente="";
   	for (int i=0; i<100; i++) {
   	nome_item[i]="";
   	preco[i]=0;
   	}
   	qtde=0;
   }

   public void Leitura() {
   	    nome_cliente= JOptionPane.showInputDialog(null, "Digite o nome do cliente : ");
   		qtde=Integer.parseInt(JOptionPane.showInputDialog(null, "Digite a quantidade de itens : "));


   	for (int i=0;  i<qtde; i++) {
   		nome_item[i]=JOptionPane.showInputDialog(null, "Digite o nome do item  " + (i+1) + ":");
   		preco[i]=Double.parseDouble(JOptionPane.showInputDialog(null, "Digite o preco do item" + (i+1) + ":" ));

   	}



   }

   public void Calcula() {
   	for (int i=0;  i<qtde; i++){

   		custo = custo + preco[i];
   	}
   }

   public void Dolares() {
   	String str="";
   	JOptionPane.showMessageDialog(null, "Itens Acima de 100 reais : ");

   	for(int i=0;i<qtde;i++)
   		if(preco[i]>100){
   		str=str+"Nome item " + (i+1)+ ":"+nome_item[i]+"\n";
   		str=str+"preco do item " + (i+1)+ ":"+preco[i]+"\n";
   		}
   		JOptionPane.showMessageDialog(null,str);



   }




   	public void Imprime() {
   		String str="";

   		str= str + "Nome cliente :" + nome_cliente + "\n";
   		str= str + "Qtde de itens :" + qtde + "\n";
   		for (int i=0; i<qtde; i++)
   			{
   			str=str + 	"Nome do item :" + nome_item[i] + "\n";
   			str= str +  "Preco de cada item :" + preco[i] + "\n";

   		}
   		str= str + "CUSTO TOTAL : " + custo + "\n";
   		JOptionPane.showMessageDialog(null, str);
   		   	}

   		   	protected void finalize() {
   		   		JOptionPane.showMessageDialog(null, "Destruindo...[" + this.getClass().getName() + "]...");
   		   		nome_cliente="";

   	          for (int i=0; i<100; i++) {
   	nome_item[i]="";
   	preco[i]=0;
   	}
   	qtde=0;

   	Imprime();
   	Calcula();
   	Dolares();

   		   	}
   }

   		   	public class PUTA {
   		   		public static void main(String args[]) {
   		   			int n;

   		   			n=Integer.parseInt(JOptionPane.showInputDialog(null, "Qual a quantidade de Orçamentos ?"));
   		   			orcamento vet[]= new orcamento[n];
   		   			for(int i=0; i<n; i++) {
   		   				vet[i]=new orcamento();
   		   				vet[i].Leitura();
   		   				vet[i].Calcula();
   		   				vet[i].Dolares();
   		   				vet[i].Imprime();

   		   			}
   		   			
   		   		
   		   	


        
	    int	op=Integer.parseInt(JOptionPane.showInputDialog(null, "Digite 1 para ordem crecente ou 2 para ordem decrecente: "));
		int aux=0;
	
		if(op==1){
			JOptionPane.showMessageDialog(null," O usuario digitou para ordem crecente ");
			
			
		    orcamento vet[]= new orcamento[n];
   		   			
			for(int i=0;i<=n;i++){
				
				for(int j=1+i;j<=n;j++){
				if(vet[i]>vet[j]){
				
				aux=vet[i];
				vet[i]=vet[j];
				vet[j]=aux;
			
			}
			
			}JOptionPane.showMessageDialog(null,vet[i]);
			
		}
}
	if(op==2){
			JOptionPane.showMessageDialog(null,"Fila ordenada Decrescente" );
		
			for(int i=0;i<=n;i++){
				
				for(int j=1+i;j<=n;j++){
				if(vet[i]<vet[j]){
				
				aux=vet[i];
				vet[i]=vet[j];
				vet[j]=aux;
			
	}
			
}
			JOptionPane.showMessageDialog(null,vet[i]);
		
				}	
		
			}
		
		}

	}

o erro na compilação é pela redeclaração do orcamento vet[]= new orcamento[n]; dentro da opção 1.
quanto a ordenação, vc implementou o código como se tivesse ordenando números inteiros, porem seu vet contem um orçamento.
exemplo se vc quiser ordenar por preco vc tem que definir um getter para o preço na classe orçamento e usar esse getter no seu código da ordenação…