Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/02/2018, 18:29
TrinityCore
 
Fecha de Ingreso: agosto-2015
Ubicación: Rosario - Argentina
Mensajes: 424
Antigüedad: 8 años, 9 meses
Puntos: 12
Se añaden botones solo

Hola gente, espero estén bien.

Verán, quisiera saber porque al minimizar la ventana se añaden botones nuevamente.
Es decir, cuando minimizo tengo 1 botón, y al mostrar la ventana nuevamente se agrega 1, cada vez que hago esto se añade otro botón y no se porque ocurre esto...

Dejare los códigos aquí debajo.

Clase Frame en cargada de crear la ventana.
Código Java:
Ver original
  1. package user_interface;
  2. import java.awt.Image;
  3. import java.awt.Toolkit;
  4. import java.io.File;
  5. import java.io.IOException;
  6.  
  7. import javax.imageio.ImageIO;
  8. import javax.swing.JFrame;
  9. class Frame extends JFrame{
  10.  
  11.     private JFrame window;
  12.     private Image Icon;
  13.     private String Title;
  14.     private int[] Position = {0, 0};
  15.     private int[] Dimension = {0, 0};
  16.     private boolean Visible;
  17.     private boolean Resizable;
  18.     private int Operation;
  19.     private String Aligment;
  20.     private Image IconImage;
  21.    
  22.     public Frame(String Icon, String Title, int W, int H, String Aligment, boolean Visible, boolean Resizable, int Operation){
  23.         this.Icon = this.GetIcon(Icon);
  24.         this.Title = Title;
  25.         this.Dimension[0] = W;
  26.         this.Dimension[1] = H;
  27.         this.Aligment = Aligment;
  28.         this.Resizable = Resizable;
  29.         this.Operation = Operation;
  30.         this.Visible = Visible;
  31.         this.CreateWindow();
  32.     }
  33.    
  34.     public Image GetIcon(String Path){
  35.         try{
  36.             this.IconImage = ImageIO.read(new File(Path));
  37.         }catch(IOException e){
  38.             System.out.println("No se pudo localizar la imagen: "+Path);
  39.         }
  40.         return this.IconImage;
  41.     }
  42.    
  43.     public void CreateWindow(){
  44.         this.window = new JFrame(this.Title);
  45.         this.window.setIconImage(this.Icon);
  46.         this.window.setSize(this.Dimension[0], this.Dimension[1]);
  47.         this.SetPosition(this.Aligment);
  48.         this.window.setResizable(this.Resizable);
  49.         this.window.setDefaultCloseOperation(this.Operation);
  50.         this.window.add(new Elements());
  51.         this.window.setVisible(this.Visible);
  52.     }
  53.    
  54.     public void SetPosition(String pos){
  55.         switch(pos){
  56.             case "LEFT-CENTER":
  57.             case "CENTER-LEFT":
  58.                 this.Position[1] = ((Toolkit.getDefaultToolkit().getScreenSize().height/2)-(this.Dimension[1]/2));
  59.             break;
  60.             case "LEFT-BOTTOM":
  61.             case "BOTTOM-LEFT":
  62.                 this.Position[1] = ((Toolkit.getDefaultToolkit().getScreenSize().height)-(this.Dimension[1]));
  63.             break;
  64.             case "TOP-CENTER":
  65.             case "CENTER-TOP":
  66.                 this.Position[0] = ((Toolkit.getDefaultToolkit().getScreenSize().width/2)-(this.Dimension[0]/2));
  67.             break;
  68.             case "TOP-RIGHT":
  69.             case "RIGHT-TOP":
  70.                 this.Position[0] = ((Toolkit.getDefaultToolkit().getScreenSize().width)-(this.Dimension[0]));
  71.             break;
  72.             case "RIGHT-CENTER":
  73.             case "CENTER-RIGHT":
  74.                 this.Position[0] = ((Toolkit.getDefaultToolkit().getScreenSize().width)-(this.Dimension[0]));
  75.                 this.Position[1] = ((Toolkit.getDefaultToolkit().getScreenSize().height/2)-(this.Dimension[1]/2));
  76.             break;
  77.             case "RIGHT-BOTTOM":
  78.             case "BOTTOM-RIGHT":
  79.                 this.Position[0] = ((Toolkit.getDefaultToolkit().getScreenSize().width)-(this.Dimension[0]));
  80.                 this.Position[1] = ((Toolkit.getDefaultToolkit().getScreenSize().height)-(this.Dimension[1]));
  81.             break;
  82.             case "BOTTOM-CENTER":
  83.             case "CENTER-BOTTOM":
  84.                 this.Position[0] = ((Toolkit.getDefaultToolkit().getScreenSize().width/2)-(this.Dimension[0]/2));
  85.                 this.Position[1] = ((Toolkit.getDefaultToolkit().getScreenSize().height)-(this.Dimension[1]));
  86.             break;
  87.             case "CENTER-CENTER":
  88.                 this.Position[0] = ((Toolkit.getDefaultToolkit().getScreenSize().width/2)-(this.Dimension[0]/2));
  89.                 this.Position[1] = ((Toolkit.getDefaultToolkit().getScreenSize().height/2)-(this.Dimension[1]/2));
  90.             break;
  91.         }
  92.         this.window.setLocation(this.Position[0], this.Position[1]);
  93.     }
  94.    
  95.     public void SetVisible(boolean visible){
  96.         this.window.setVisible(visible);
  97.     }
  98.    
  99.     public void SetDimension(int W, int H){
  100.         this.Dimension[0] = W;
  101.         this.Dimension[1] = H;
  102.         this.window.setSize(W, H);
  103.     }
  104. }

Clase Elements encargada de crear los componentes de la ventana.
Código Java:
Ver original
  1. package user_interface;
  2. import java.awt.Color;
  3. import java.awt.Font;
  4. import java.awt.Graphics;
  5. import java.awt.Image;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import java.io.File;
  9. import java.io.IOException;
  10.  
  11. import javax.imageio.ImageIO;
  12. import javax.swing.JButton;
  13. import javax.swing.JPanel;
  14.  
  15. class Elements extends JPanel implements ActionListener{
  16.  
  17.     private Image Image;
  18.    
  19.    
  20.     public void paintComponent(Graphics G){
  21.         super.paintComponent(G);
  22.         this.AddButton("My First JButton");
  23.        
  24.     }
  25.    
  26.     public void AddText(String T, int X, int Y, String FT, int FS, int FZ, Color C, Graphics G){
  27.         G.setFont(new Font(FT, FS, FZ));
  28.         G.setColor(C);
  29.         G.drawString(T, X, Y);
  30.     }
  31.    
  32.     public void AddImage(String Patch, int X, int Y, int W, int H, Graphics G){
  33.         try{
  34.             this.Image = ImageIO.read(new File(Patch));
  35.             G.drawImage(this.Image, X, Y, W, H, null);
  36.         }catch (IOException e){
  37.             System.out.println("No se pudo localizar la imagen solicitada: "+Patch);
  38.         }
  39.     }
  40.    
  41.     public void AddButton(String T){
  42.         JButton button = new JButton(T);
  43.         button.addActionListener(this);
  44.         this.add(button);  
  45.     }
  46.    
  47.     public void actionPerformed(ActionEvent e){
  48.        
  49.     }
  50.    
  51. }

Clase Init encargada de iniciar el programa.
Código Java:
Ver original
  1. package user_interface;
  2. import java.awt.Color;
  3. import java.awt.Graphics;
  4. import javax.swing.JFrame;
  5.  
  6. public class init{
  7.     public static void main(String[] args){
  8.         Frame window = new Frame("C:/AppServ/www/images/DefaultIcon.png", "Mi Primera Ventana Java", 400, 250, "CENTER-CENTER", true, false, JFrame.EXIT_ON_CLOSE);
  9.     }
  10. }

Espero que me sepan decir cual es el problema y porque ocurre esto, para tenerlo en cuenta.

Gracias de antemano!