Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2018, 06:21
TrinityCore
 
Fecha de Ingreso: agosto-2015
Ubicación: Rosario - Argentina
Mensajes: 424
Antigüedad: 8 años, 8 meses
Puntos: 12
drawString no muestra lo escrito.

Hola gente, muy buenas a todos.

Verán, soy novato en esto de java de hecho voy por el curso 60 de 276.

Ps, estoy iniciandome en la parte de swing y me encuentro con dos problemas.

El primero, es que al utilizar el metodo drawString y mostrar la ventana, este texto no aparece...

Y el segundo, es que me sale una exception cuando intento crear un texto desde un metodo propio.

Aqui dejare los codigos--

Class Frame, crea la ventana:
Código Java:
Ver original
  1. package user_interface;
  2. import java.awt.Image;
  3. import java.awt.Toolkit;
  4.  
  5. import javax.swing.JFrame;
  6. class Frame extends JFrame{
  7.  
  8.     private JFrame window;
  9.     private String Icon;
  10.     private String Title;
  11.     private int[] Position = {0, 0};
  12.     private int[] Dimension = {0, 0};
  13.     private boolean Visible;
  14.     private boolean Resizable;
  15.     private int Operation;
  16.     private String Aligment;
  17.    
  18.     public Frame(String Icon, String Title, int W, int H, String Aligment, boolean Visible, boolean Resizable, int Operation){
  19.         this.Icon = Icon;
  20.         this.Title = Title;
  21.         this.Dimension[0] = W;
  22.         this.Dimension[1] = H;
  23.         this.Aligment = Aligment;
  24.         this.Resizable = Resizable;
  25.         this.Operation = Operation;
  26.         this.Visible = Visible;
  27.         this.CreateWindow();
  28.     }
  29.    
  30.     public void CreateWindow(){
  31.         this.window = new JFrame(this.Title);
  32.         this.window.setSize(this.Dimension[0], this.Dimension[1]);
  33.         this.SetPosition(this.Aligment);
  34.         this.window.setResizable(this.Resizable);
  35.         this.window.setDefaultCloseOperation(this.Operation);
  36.     }
  37.    
  38.     public void SetPosition(String pos){
  39.         switch(pos){
  40.             case "LEFT-CENTER":
  41.             case "CENTER-LEFT":
  42.                 this.Position[1] = ((Toolkit.getDefaultToolkit().getScreenSize().height/2)-(this.Dimension[1]/2));
  43.             break;
  44.             case "LEFT-BOTTOM":
  45.             case "BOTTOM-LEFT":
  46.                 this.Position[1] = ((Toolkit.getDefaultToolkit().getScreenSize().height)-(this.Dimension[1]));
  47.             break;
  48.             case "TOP-CENTER":
  49.             case "CENTER-TOP":
  50.                 this.Position[0] = ((Toolkit.getDefaultToolkit().getScreenSize().width/2)-(this.Dimension[0]/2));
  51.             break;
  52.             case "TOP-RIGHT":
  53.             case "RIGHT-TOP":
  54.                 this.Position[0] = ((Toolkit.getDefaultToolkit().getScreenSize().width)-(this.Dimension[0]));
  55.             break;
  56.             case "RIGHT-CENTER":
  57.             case "CENTER-RIGHT":
  58.                 this.Position[0] = ((Toolkit.getDefaultToolkit().getScreenSize().width)-(this.Dimension[0]));
  59.                 this.Position[1] = ((Toolkit.getDefaultToolkit().getScreenSize().height/2)-(this.Dimension[1]/2));
  60.             break;
  61.             case "RIGHT-BOTTOM":
  62.             case "BOTTOM-RIGHT":
  63.                 this.Position[0] = ((Toolkit.getDefaultToolkit().getScreenSize().width)-(this.Dimension[0]));
  64.                 this.Position[1] = ((Toolkit.getDefaultToolkit().getScreenSize().height)-(this.Dimension[1]));
  65.             break;
  66.             case "BOTTOM-CENTER":
  67.             case "CENTER-BOTTOM":
  68.                 this.Position[0] = ((Toolkit.getDefaultToolkit().getScreenSize().width/2)-(this.Dimension[0]/2));
  69.                 this.Position[1] = ((Toolkit.getDefaultToolkit().getScreenSize().height)-(this.Dimension[1]));
  70.             break;
  71.             case "CENTER-CENTER":
  72.                 this.Position[0] = ((Toolkit.getDefaultToolkit().getScreenSize().width/2)-(this.Dimension[0]/2));
  73.                 this.Position[1] = ((Toolkit.getDefaultToolkit().getScreenSize().height/2)-(this.Dimension[1]/2));
  74.             break;
  75.         }
  76.         this.window.setLocation(this.Position[0], this.Position[1]);
  77.     }
  78.    
  79.     public void SetVisible(boolean visible){
  80.         this.window.setVisible(visible);
  81.     }
  82.    
  83.     public void SetDimension(int W, int H){
  84.         this.Dimension[0] = W;
  85.         this.Dimension[1] = H;
  86.         this.window.setSize(W, H);
  87.     }
  88. }

Class Elements, no funciona como corresponde... pero es la que quiero para crear componentes.
Código Java:
Ver original
  1. package user_interface;
  2. import java.awt.Graphics;
  3. import javax.swing.JPanel;
  4.  
  5. class Elements extends JPanel{
  6.    
  7.     private Graphics Graphs;
  8.    
  9.     public void paintComponent(Graphics G){
  10.         this.Graphs = G;
  11.         super.paintComponent(this.Graphs);
  12.         this.Graphs.drawString("Hola Mundo", 10, 10); // Así debo de llamarlo para que no me de Exception alguna.
  13.     }
  14.    
  15.     public void AddText(String Text, int X, int Y){ // Este metodo tira Exception al ser llamado con la instancia de la clase "Elements".
  16.         this.Graphs.drawString(Text, X, Y);
  17.     }
  18.    
  19. }

Clase Init es la clase principal main
Código Java:
Ver original
  1. package user_interface;
  2. import javax.swing.JFrame;
  3.  
  4. public class init{
  5.     public static void main(String[] args){
  6.         Frame window = new Frame("favicon.png", "Mi Primera Ventana Java", 500, 250, "CENTER-CENTER", true, false, JFrame.EXIT_ON_CLOSE);
  7.         Elements components = new Elements();
  8.         window.add(components);
  9.         window.SetVisible(true);
  10.         // Al Ejecutar este code, muestra todo, menos el texto "Hola Mundo".
  11.     }
  12. }

¿Cual podria ser la solucion a estos dos problemas? y... ¿porque ocurre esto?
Me gustaria recibir una respuesta que sirva de aprendizaje.

Espero me ayuden y gracias de antemano!