Как я использую элемент array объектов в другом классе?

у меня есть проблема во время использования array объектов Posicion названный posiciones в третьем классе, который является окном (VentanaPrioridades), в котором я хочу сыграть с именем, цветом и положением того же самого.

Класс Положение

package gestionPrioridades;

import java.awt.Color;

public class Posicion extends VentanaPrioridades {
private static final long serialVersionUID = 1L;
//Propiedades
protected Color color;
protected String nombreSurfer;
protected int posicion;

public Color getColor() {
    return color;
}
public void setColor(Color color) {
    this.color = color;
}
public String getNombreSurfer() {
    return nombreSurfer;
}
public void setNombreSurfer(String nombreSurfer) {
    this.nombreSurfer = nombreSurfer;
}
public int getPosicion() {
    return posicion;
}
public void setPosicion(int posicion) {
    this.posicion = posicion;
}

public Posicion(Color color, String nombreSurfer, int i) {
    this.color = color;
    this.nombreSurfer = nombreSurfer;
    this.posicion = -1;
}

}

Класс main

package main;

import java.awt.Color;
import java.util.ArrayList;

import gestionPrioridades.Posicion;
import gestionPrioridades.VentanaPrioridades;

public class main {
public main() {
    //GESTIÓN DE PRIORIDADES        
        VentanaPrioridades prioridades = new VentanaPrioridades();  

            Posicion[] posiciones = new Posicion[4];
        posiciones[0] = new Posicion(Color.black, "Jaime Amán", -1);
        posiciones[1] = new Posicion(Color.BLUE, "Lucas Quintana", -1);
        posiciones[2] = new Posicion(Color.GREEN, "Ana Abatu", -1);
        posiciones[3] = new Posicion(Color.RED, "Amanda Lucas", -1);
    }

}

Класс VentanaPrioridades (где я хочу использовать элементы array main)

package gestionPrioridades;


public class VentanaPrioridades extends JFrame {


private static final long serialVersionUID = 1L;

public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            new VentanaPrioridades();   
        }
    });

}
public VentanaPrioridades() {
    JLabel lblSurfer1 = new JLabel("AQUI QUIERO METER EL NOMBRE");
0
задан 07.11.2019, 17:29
1 ответ

VentanaPrioridades не имеет доступа к Положению. PosiciГіn sГ - он имеет доступ к VentanaPrioridades, ты это можешь делать посредством this.super .

, Поскольку он не имеет доступа, tendrГ-туз, который должен предохранять ее informaciГіn от Положения в VentanaPrioridades. (Но сделав это, не tendrГ - во многий почувствованный существование Положения)

ВїPor quГ© PosiciГіn sГ - имеет доступ? PosiciГіn увеличивает VentanaPrioridades. Поэтому у него есть все свойства и mГ©todos VentanaPrioridades.

ВїCГіmo перемещать ее VentanaPrioridades informaciГіn? Во время нее construcciГіn. Я описываю тебе Stack вызовов.

  1. Сначала выполняет new Положение ()
  2. Называет строителя Посисион ()
  3. Строитель производит VentanaPosiciones () посредством супер ()
  4. VentanaPosiciones () произведи JFrame посредством супер () (он automГЎtico)
  5. JFrame он производится.
  6. VentanaPosiciones закончи работать вслед за супер () JFrame.
  7. Положение заканчивает производиться вслед за супер () VentanaPosiciones.

ты Можешь использовать возможность, чтобы перемещать переменные строителей. В этом случае Положение может перемещать surfer VentanaPosiciones посредством супер ().

В continuaciГіn оставил тебя cГіdigo я завершаю:

Положение

import java.awt.Color;

public class Posicion extends VentanaPrioridades {
  private static final long serialVersionUID = 1L;
  // Propiedades
  protected Color color;
  protected String nombreSurfer;
  protected int posicion;

  public Color getColor() {
    return color;
  }

  public void setColor(Color color) {
    this.color = color;
  }

  public String getNombreSurfer() {
    return nombreSurfer;
  }

  public void setNombreSurfer(String nombreSurfer) {
    this.nombreSurfer = nombreSurfer;
  }

  public int getPosicion() {
    return posicion;
  }

  public void setPosicion(int posicion) {
    this.posicion = posicion;
  }

  public Posicion(Color color, String nombreSurfer, int i) {
    super(color, nombreSurfer, i);
    this.color = color;
    this.nombreSurfer = nombreSurfer;
    this.posicion = -1;
  }
}

Окно первенство

import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class VentanaPrioridades extends JFrame {

  /**
   * 
   */

  protected Color color;
  protected String nombreSurfers;
  protected int posicion;


  private static final long serialVersionUID = 1L;

  public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            new VentanaPrioridades();   
        }
    });
  }

  public VentanaPrioridades(Color color, String nombreSurfers, int posicion) {
    this.color = color;
    this.nombreSurfers = nombreSurfers;
    this.posicion = posicion;
    crearJFrame();
  }

  public VentanaPrioridades() {
    crearJFrame();
  }

  private void crearJFrame() {
    JLabel lblSurfer1 = new JLabel(nombreSurfers);
  }
}
0
ответ дан 01.12.2019, 12:23
  • 1
    Пожалуйста прочитай CГіmo отвечать , считай издавать и добавлять explicació n в твой код – Aprendiz 07.11.2019, 18:20
  • 2
    Большое спасибо, но я не понимаю dó nde я должен определять тогда array положений. Если ты мог объяснять мне это ты это agradecerí в. По отношению к части я имею main и двух строителей окна вместе с jframe, ¿ для qué так mé все? – rockingrock 08.11.2019, 18:09
  • 3
    Я отвечаю тебе в нескольких комментариях, которые, если, он не вводит меня... – Francisco Javier Cuena Serrano 08.11.2019, 18:19
  • 4
    В большие черты, Main открывает aplicació n, что открывает четыре JFrame типа Положение (пользователь видит четыре окна). У Main есть Ваш класс main для того, чтобы ты смог загружать ее, и у Положения есть Ваш main для того, чтобы он смог производить JFrame. – Francisco Javier Cuena Serrano 08.11.2019, 18:21
  • 5
    С другой стороны. Строители имеют общее с có mo функционирует наследство в Java. – Francisco Javier Cuena Serrano 08.11.2019, 18:32

Теги

Похожие вопросы