Ir para o conteúdo
tcms

Duvida com frames/windows

Mensagens Recomendadas

tcms

Boas malta,

Estou a tentar criar uma janela em que quero que o background seja preto, mas para isso quer usar um ficheiro PNG (como tamanho fixo) que irá ser colocado em toda a àrea do bakground, de forma a que este fique todo preenchido.

Tentei com este código básico:

public void Ponto(){
int a = janela.getHeight();
int b = janela.getWidth();
try {
for(int i = 0; i!=a;i++){
for(int j = 0; j!=b;j++){
janela.getDisplayer().add(new SimpleImage("Black.png", i, j));
janela.getDisplayer().refresh();
}
}

}
catch (IOException e) {

}

E o resultado é bastante lento e não é eficaz. Alguem me poderá dar outra dica para o fazer?

Editado por brunoais
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tcms

Sim, essa seria a ajuda ideal no caso de estar a usar a package genérica. Mas não é esse o caso, a unica hipotese que tenho é usar o metodo "add" (imagem, x ,y).

O problema é que ao fazer isto, quando faço o run ele começa a preencher a janela, como se tivesse a percorrer toda a imagem.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Sim, essa seria a ajuda ideal no caso de estar a usar a package genérica

e como achas que alguém vai descobrir o que estás a usar ?


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tcms

e como achas que alguém vai descobrir o que estás a usar ?

Tens razão. Vamos começar do zero.

Basicamente tenho de fazer o background de uma janela a partir de um ficheiro texto. Para isso estou a usar o scanner.

A minha ideia é ler o ficheiro texto com o scanner e colocar o seu conteúdo numa matriz. Posto isto, percorro a matriz em conjunto com a JFrame e desenho o background.

É a unica ideia que tenho, contudo não sei se funciona pois imagine-se que a JFrame tem 400x400 e o ficheiro texto tem 5ints x 4ints por exemplo:

12345

12345

52345

12354

terei de estabelecer uma medida pixel por cada int lido?

Editado por tcms

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tcms

Estou a tentar colocar a primeira linha num vector e o código que fiz foi este:

public int[] carregar_ficheiro(String ficheiro) {
int[] aux = new int[4];
try {
Scanner fileScanner = new Scanner(new File(ficheiro));
while (fileScanner.hasNext()) {
String linha = fileScanner.nextLine();
Scanner linhaScanner = new Scanner(linha);
int temp = linhaScanner.nextInt();
for (int i = 0; i < aux.length; i++) {
    aux = temp;
    }
linhaScanner.close();
}
fileScanner.close();
} catch (final FileNotFoundException exception) {
System.out.println(ficheiro + ".txt não encontrado");
}
return aux;
}

Mas ao fazer sysout do vector na posição 2, ele devolve-me o valor 1. Sendo que na posição dois o valor é 3.

O problema é que ele coloca o primeiro inteiro que encontra em todos os indices do vector, ou seja, o problema é que ele só encontra o primeiro valor do .txt file e não parte para o seguinte.

Editado por brunoais
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tcms

Sim eu percebo que ele está a colocar em todos os o i's o temp, a questão aqui é: o .nextInt() não avançar para os outros inteiros

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tcms

e não reparaste que essa instrução está fora do ciclo ?

Nem mais. Que problema tão simples, distracção acima de tudo.

Mais uma vez obrigado HappyHH

Agora é tentar fazer o mesmo mas com uma matriz, o problema será ele ler as seguintes linhas

Editado por tcms

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.