gpt4 book ai didi

java - 将填充的数组传递给公共(public)变量,以便可以在其他类中使用

转载 作者:行者123 更新时间:2023-12-04 04:54:41 25 4
gpt4 key购买 nike

所以我一直在开发一个已经完成基本布局的 GUI。我已经把所有的逻辑都映射出来了,但是我遇到的问题是弄清楚如何将一个填充的数组设置为一个公共(public)变量,其中所有的字符串和整数都保持不变,而不是让它保持空白。我绝不是编程专家,所以如果答案很明显,请耐心等待。我将发布我试图在公共(public)变量中获取填充数组的窗口。

公共(public)数组'robbieArray'主要工作以从中输出任何值,但过去我不能在框架中使用它。我只想要一个解决方案,以便我可以在我决定制作的框架和其他类中访问它。

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import java.beans.*;



public class PlayerShow extends JFrame
{

public JFrame playerShowFrame;

public final int CLASSSIZE1 = 2;//subject to change

//PlayerInput player = new PlayerInput();

public PlayerInput [] robbieArray = new PlayerInput [CLASSSIZE1];



public void main(String[] args) throws IOException, FileNotFoundException
{
// PlayerInput player = new PlayerInput();
Scanner inputRobbieChamps = new Scanner (new FileReader("robbie_mccarthy_champs.txt"));

for (int x = 0; x<CLASSSIZE1;x++)
{
String champName = inputRobbieChamps.next();
String role = inputRobbieChamps.next();
int tier = inputRobbieChamps.nextInt();

robbieArray[x] = new PlayerInput (champName, role, tier);
System.out.println("The champ name is " + robbieArray[x].getChampName() + "with a role of " + robbieArray[x].getRole() + " and a tier value of " + robbieArray[x].getTier());
}
// PlayerInput [] robbieArray = new PlayerInput[CLASSSIZE1];



/* for (int x = 0; x<CLASSSIZE1; x++)
{
robbieArray [x] = new PlayerInput();
}

for (int x = 0; x<CLASSSIZE1; x++)
{
robbieArray[x].setChampName(inputRobbieChamps.next());
robbieArray[x].setRole(inputRobbieChamps.next());
robbieArray[x].setTier(inputRobbieChamps.nextInt());
}*/
inputRobbieChamps.close();


}


public PlayerShow ()
{
frame();
playerShowFrame.setVisible(false);
}

public void frame()
{
playerShowFrame = new JFrame();
playerShowFrame.setVisible(true);
//playerShowFrame.setSize(900,600);
playerShowFrame.setDefaultCloseOperation(EXIT_ON_CLOSE);
getPlayerShowFrame().setBounds(100, 300, 900, 600);
playerShowFrame.setLayout(new GridLayout(5,8));

JLabel titleL = new JLabel ("Robbie McCarthy's data:", SwingConstants.CENTER);

JLabel blank1L = new JLabel (" ", SwingConstants.CENTER);

JLabel blank2L = new JLabel (" ", SwingConstants.CENTER);

JLabel champNameL = new JLabel("Champion Name", SwingConstants.CENTER);

JLabel roleL = new JLabel ("Role", SwingConstants.CENTER);

JLabel tierL = new JLabel ("Tier", SwingConstants.CENTER);

JTextArea hugeTF = new JTextArea ();

hugeTF.setColumns(6);
hugeTF.setRows(3);

// for (int x = 0; x<CLASSSIZE1; x++)
// {
System.out.println(robbieArray[0].getRole()); // This is where I am checking to see if i get a filled public array

// }

hugeTF.setEditable(false);

playerShowFrame = getPlayerShowFrame();

playerShowFrame.add(titleL);

playerShowFrame.add(blank1L);

playerShowFrame.add(blank2L);

playerShowFrame.add(champNameL);

playerShowFrame.add(roleL);

playerShowFrame.add(tierL);

playerShowFrame.add(hugeTF);

}




public JFrame getPlayerShowFrame() {
return playerShowFrame;
}

public void setPlayerShowFrame(JFrame playerShowFrame) {
this.playerShowFrame = playerShowFrame;
}
}

最佳答案

将数组设为私有(private)静态 .. 为了封装 OOP,创建一个静态 getter

private static PlayerInput [] robbieArray = new PlayerInput [CLASSSIZE1];

public static PlayerInput [] getRobbieArray(){
return robbieArray;
}

然后您可以通过 PlayerShow.getRobbieArray() 访问它

关于java - 将填充的数组传递给公共(public)变量,以便可以在其他类中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16927702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com