elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  problema al mover JLabel en JFrame
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problema al mover JLabel en JFrame  (Leído 25,309 veces)
smasher666

Desconectado Desconectado

Mensajes: 76


Ver Perfil
problema al mover JLabel en JFrame
« en: 27 Octubre 2009, 15:16 pm »

Hola, estoy haciendo un proyecto y tengo un JFrame que tiene como contenPane un JPanel, entonces añado un JLabel a el JFrame ( añadiendolo al JPanel tampoco funciona) y luego hago Label.setLocation(x,y); pero no se mueve...alguien me ayuda?


En línea

Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: problema al mover JLabel en JFrame
« Respuesta #1 en: 27 Octubre 2009, 20:43 pm »

quieres que se mueva como una animacion?


En línea

smasher666

Desconectado Desconectado

Mensajes: 76


Ver Perfil
Re: problema al mover JLabel en JFrame
« Respuesta #2 en: 27 Octubre 2009, 21:56 pm »

no, solamente quiero que ese elemento se ponga por ejemplo en la posicion 100,100 por ejemplo, pero esqu eno hay manera :S

En línea

Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: problema al mover JLabel en JFrame
« Respuesta #3 en: 27 Octubre 2009, 22:08 pm »

mmmmm usa el setBounds(100,0,100,20);
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: problema al mover JLabel en JFrame
« Respuesta #4 en: 28 Octubre 2009, 03:18 am »

Hola, Mover??, será mostrar

Bueno como sea, no es muy complicado la verdad, checa este ejemplo.

Código:
import javax.swing.*;
import java.awt.*;

public class cargarImagen extends JFrame {

    private JLabel etqImagen;
    private JPanel panel;

    public static void main(String args[]) {
new cargarImagen().setVisible(true);
    }

    public cargarImagen() {
        initComponents();
    }

    private void initComponents() {

        panel = new JPanel();
        etqImagen = new JLabel();

        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setTitle("Mostrar Imagen");
        setResizable(false);
        getContentPane().setLayout(new FlowLayout());

        panel.setPreferredSize(new Dimension(123, 190));
        panel.setLayout(null);

        etqImagen.setIcon(new ImageIcon(getClass().getResource("/images/duke.png")));
        panel.add(etqImagen);
        etqImagen.setBounds(20, 20, 83, 150);

        getContentPane().add(panel);

        pack();
    }
}

Te creas una carpeta que se llame images y dentro guardas una imagen que se llame duke con la extension png (para este ejemplo)

http://mindprod.com/image/iconcorp/duke.png

Saludos
En línea

abc
smasher666

Desconectado Desconectado

Mensajes: 76


Ver Perfil
Re: problema al mover JLabel en JFrame
« Respuesta #5 en: 28 Octubre 2009, 16:28 pm »

no si no es porque se una imagen, si no que con un texto tambien me pasa,, con el setBounds tampoco funciona...os dejo el codigo por aqui, esta un poco caotico:

Código:
public class MapEditor {
   
    private int nivel;
    private int ANCHO=800;
    private int ALTO=600;
    private JComboBox text;
    private Boolean notFound;
    private int count;
    private Boolean acepted=false;
    private JComboBox[][] mapa= new JComboBox[6][12];

    public MapEditor() {


        for(int i=0;i<6;i++){
            for(int j=0;j<12;j++){
                JComboBox box = new JComboBox();
                box.addItem("E");
                box.addItem("X");
                mapa[i][j]=box;

            }
        }




        JFrame frame = new JFrame("Editor");
        frame.setBounds(0, 0, ANCHO, ALTO);
      frame.setDefaultLookAndFeelDecorated(true);
      frame.setVisible(true);
        JPanel panel = new JPanel();
        panel.setBounds(0, 0, ANCHO, ALTO);
        frame.setContentPane(panel);

        JLabel mensaje = new JLabel("Introduce el numero del nivel a editar:" );
       
        panel.add(mensaje);

        mensaje.setBounds(100,400,100,100);


        text = new JComboBox();
       
        count=0;
        while(count<100){
           
           
                text.addItem(count);
                count++;


        }



       
       
        panel.add(text);


        JButton aceptar = new JButton("Aceptar");

        panel.add(aceptar);
       

       

        MouseListener mouse = new MouseListener() {

            public void mouseClicked(MouseEvent e) {
             
            }

            public void mousePressed(MouseEvent e) {
               nivel=text.getSelectedIndex();
              System.out.println(nivel);
              acepted=true;
            }

            public void mouseReleased(MouseEvent e) {
               
            }

            public void mouseEntered(MouseEvent e) {
               
            }

            public void mouseExited(MouseEvent e) {
               
            }
        };

        aceptar.addMouseListener(mouse);
       
        while(!acepted){
            try {
                Thread.sleep(50);
            } catch (InterruptedException ex) {
                Logger.getLogger(MapEditor.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        text.setVisible(false);
        mensaje.setVisible(false);
        aceptar.setVisible(false);


        File file = new File("niveles/Nivel"+nivel+".txt");
        if(!file.canRead()){
            try {
               
                file.createNewFile();
                System.out.println("Fichero creado");
            } catch (IOException ex) {
                System.out.println("Error al crear fichero");
            }
        }


        int x=0;
        int y=0;
        for(int i=0;i<6;i++){
            for(int j=0;j<12;j++){
               JComboBox box= mapa[i][j];

               
               
               
                panel.add(box);
                box.setLocation(x,y);
               

               
               

               
               
               
                x=x+100;
               
            }x=0; y=y+100;
        }



    }
    public static void main(String[]args){
        MapEditor map = new MapEditor();
    }
}
« Última modificación: 28 Octubre 2009, 16:43 pm por smasher666 » En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: problema al mover JLabel en JFrame
« Respuesta #6 en: 28 Octubre 2009, 18:50 pm »

Un poco?? :o

MM se mira que no te gusta leer, ni entenderle a otros códigos, con el programa que subi bastaba para entender
Ademas java es un lenguaje Orientado a Objetos, cosa que no veo por ningun lado en tu programa.

Pero bueno

Arregle un poco tu código, me dio weba hacerlo todo

Pero fijate bien en las instrucciones que agregue y modifiqué...

Citar

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.logging.Logger;
import java.util.logging.Level;

public class MapEditor extends JFrame{
   
    private int nivel;
    private int ANCHO=800;
    private int ALTO=600;
    private JComboBox text;
    private Boolean notFound;
    private int count;
    private Boolean acepted=false;
    private JComboBox[][] mapa= new JComboBox[6][12];
    private JPanel panel;
    private JLabel mensaje;
    private JButton aceptar;
   
    public static void main(String[]args){
        new MapEditor().setVisible(true);
    }

    public MapEditor() {
       
       panel = new JPanel();
       
         setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setTitle("Mostrar Imagen");
         getContentPane().setLayout(new FlowLayout());

        panel.setPreferredSize(new Dimension(800, 600));
        panel.setLayout(null);

        for(int i=0;i<6;i++){
            for(int j=0;j<12;j++){
                JComboBox box = new JComboBox();
                box.addItem("E");
                box.addItem("X");
                mapa[j]=box;

            }
        }
       
        mensaje = new JLabel("Introduce el numero del nivel a editar:" );
       
        panel.add(mensaje);
        mensaje.setBounds(20, 20, 220, 20);

        text = new JComboBox();
        count=0;
        while(count<100){           
                text.addItem(count);
                count++;
        }     
        panel.add(text);
        text.setBounds(240, 20, 50, 20);
       
        aceptar = new JButton("Aceptar");
        panel.add(aceptar);
        aceptar.setBounds(310, 20, 100, 20);
        /*MouseListener mouse = new MouseListener() {

            public void mouseClicked(MouseEvent e) {
             
            }

            public void mousePressed(MouseEvent e) {
               nivel=text.getSelectedIndex();
              System.out.println(nivel);
              acepted=true;
            }

            public void mouseReleased(MouseEvent e) {
               
            }

            public void mouseEntered(MouseEvent e) {
               
            }

            public void mouseExited(MouseEvent e) {
               
            }
        };
        aceptar.addMouseListener(mouse);
       
        while(!acepted){
            try {
                Thread.sleep(50);
            } catch (InterruptedException ex) {
                Logger.getLogger(MapEditor.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        text.setVisible(false);
        mensaje.setVisible(false);
        aceptar.setVisible(false);
       
        File file = new File("niveles/Nivel"+nivel+".txt");
        if(!file.canRead()){
            try {
               
                file.createNewFile();
                System.out.println("Fichero creado");
            } catch (IOException ex) {
                System.out.println("Error al crear fichero");
            }
        }

        int x=0;
        int y=0;
        for(int i=0;i<6;i++){
            for(int j=0;j<12;j++){
               JComboBox box= mapa[j];
                panel.add(box);
                box.setLocation(x,y);
                x=x+100;
               
            }x=0; y=y+100;
        }*/

      getContentPane().add(panel);
      pack();

    }
   
}


Trata de entenderle bien a las siguiente lineas

Citar

getContentPane().setLayout(new FlowLayout());

panel.setPreferredSize(new Dimension(123, 190));
panel.setLayout(null);

mensaje = new JLabel("Introduce el numero del nivel a editar:" );
panel.add(mensaje);
mensaje.setBounds(20, 20, 220, 20);

getContentPane().add(panel);
pack();

Espero no confundirte.


saludos
En línea

abc
smasher666

Desconectado Desconectado

Mensajes: 76


Ver Perfil
Re: problema al mover JLabel en JFrame
« Respuesta #7 en: 29 Octubre 2009, 07:56 am »

osea, que un frame tiene como content panel un flowlayout y este flow layout un panel dentro? que follon XD seria porqu eno tenia flowlayout qu eno me dejaba moverlo.

No lo acavo de entender, porque so no s puede hacer con el JFrame? tiene que ser con el Jpanel? y en los metods por ejemplo pack();, no pones a que objeto te refieres, no seria panel.pack();?

pd: la modificacion no funciona, compila i todo pero no sale el panel por ningun lado, es como si estuviera invisible.

pd: no ves la parte orientada a objetos de el prgrama porqu enoe s el programa completo, es solo una clase ;)
« Última modificación: 29 Octubre 2009, 08:08 am por smasher666 » En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: problema al mover JLabel en JFrame
« Respuesta #8 en: 30 Octubre 2009, 03:35 am »

Hola

osea, que un frame tiene como content panel un flowlayout y este flow layout un panel dentro? que follon XD seria porqu eno tenia flowlayout qu eno me dejaba moverlo.


Entonces en tu código para que manejas el JPanel panel?? ¬¬
Se puede agregar los componenetes al Contenedor del JFrame

no creo que quieras agregar primero tu jcombobox y los demas componentes y al final agregar tu jpanel XXD

No lo acavo de entender, porque so no s puede hacer con el JFrame? tiene que ser con el Jpanel? y en los metods por ejemplo pack();, no pones a que objeto te refieres, no seria panel.pack();?

Citar
pack()
auses this Window to be sized to fit the preferred size and layouts of its subcomponents.

http://java.sun.com/j2se/1.3/docs/api/java/awt/Window.html

El método pack() calcula el tamaño mínimo de una ventana para que pueda acomodar todos los componentes que contiene de forma razonable y llama a setSize() sobre ese tamaño.

pd: la modificacion no funciona, compila i todo pero no sale el panel por ningun lado, es como si estuviera invisible.

XDD como para que quieres ver el panel, yo tampoco lo veo por ninguna lado en tu código, y pero si quieres ver el marco agrega esta linea de código

Pero si te interesa verlo puedes agregarle un color o el marco

//Coloca las siguientes DOS lineas antes del setLayout
panel.setBackground(new java.awt.Color(204, 0, 0));
panel.setBorder(javax.swing.BorderFactory.createEtchedBorder(new java.awt.Color(0, 0, 153), null));
panel.setLayout(null);

Espero ahora si lo puedas ver XXD

pd: no ves la parte orientada a objetos de el prgrama porqu enoe s el programa completo, es solo una clase ;)

Tal vez sera por eso lol

Mira smasher666, a ver como me explico...
El piso es el JFrame
Tu Mesa de Escritorio es el JPanel
y el conjunto de Aparatos que conforman tu computadora es el conjunto de componentes que vas a colocar en el panel (por ejemplo jcombobox, jbutton, jtextfield, inclusive jpanel)

Tienes que seguir un orden, no vas a dejar tu computadora debajo de tu Escritorio XDD

Código:
getContentPane().setLayout(new FlowLayout());

panel.add(botonAceptar);

getContentPane().add(panel);

y no necesariamente tiene que ser FlowLayout, puedes usar cualquier Administradores de diseño o ninguno

Espero me haya explicado.


saludos
En línea

abc
1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: problema al mover JLabel en JFrame
« Respuesta #9 en: 30 Octubre 2009, 03:43 am »

...
« Última modificación: 1 Noviembre 2009, 01:27 am por Darhius » En línea

abc
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Desplazamiento de JButton o JLabel
Java
c0der 7 15,685 Último mensaje 21 Diciembre 2010, 21:30 pm
por Debci
[SOLUCIONADO] Crear un jLabel dentro de un jFrame existente « 1 2 »
Java
almensilla 11 19,270 Último mensaje 8 Febrero 2011, 16:04 pm
por Nakp
Problema con JFrame
Java
Tlecoatl 0 3,017 Último mensaje 30 Abril 2011, 23:22 pm
por Tlecoatl
Problema con JFrame
Java
.:UND3R:. 2 2,005 Último mensaje 1 Agosto 2013, 04:37 am
por .:UND3R:.
problema con jframe
Java
rocker1822 2 1,853 Último mensaje 17 Enero 2014, 14:46 pm
por ThinkByYourself
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines