私はここで何かが不足していますが、私はsetAttributesメソッドを使って、敏感なテキストフィールドを更新することはできません。メソッドと呼び出しを呼び出すクラスは、system.out.println(敏捷性)のように必要な値を渡して正常に動作します。しかし、下の行だけでは、agilityAmountのtxtフィールドを設定しようとしましたが、表示されません。私は間違って何をしていますか?私のsetTextは私のJTextFieldを更新していませんか?
class GraphicalInterface extends JFrame implements Runnable, KeyListener
{
GraphicalInterface() {
}
JFrame mainwindow;
//declare panels
JPanel panel1=new JPanel();
JPanel panel2=new JPanel();
JPanel invictusWelcome=new JPanel();
JPanel gameStartQuit=new JPanel();
JPanel panel3=new JPanel();
JPanel panel4=new JPanel();
JPanel panel5=new JPanel();
JPanel panel6=new JPanel();
JPanel panel7=new JPanel(new GridLayout(7, 1));
JPanel mappanel=new JPanel();
JPanel attribpanel=new JPanel(new GridLayout(12,0));
//declare buttons
JButton startGame;
JButton quitButton;
JButton mapButton;
JButton townButton;
JButton castleButton;
JButton forestButton;
JButton exitButton;
JButton fighterSelect;
JButton hybridSelect;
JButton magicSelect;
JButton characterConfirm;
//declare labels
JLabel agility=new JLabel("Agility:");
JLabel health=new JLabel("Health: ");
JLabel mana=new JLabel("Mana: ");
JLabel strength=new JLabel("Strength: ");
JLabel intelligence=new JLabel("Intelligence: ");
JLabel charNameLabel=new JLabel("Name: ");
JTextField charNameLabelField=new JTextField();
JTextField healthAmount=new JTextField();
JTextField manaAmount=new JTextField();
JTextField currentHealthAmount=new JTextField();
JTextField currentManaAmount=new JTextField();
JTextField strengthAmount=new JTextField();
JTextField agilityAmount=new JTextField();
JTextField intelligenceAmount=new JTextField();
JTextField description;
//declares attribute values
String name="";
int agi=0;
int str=0;
int intel=0;
int currentHealth=0;
int maxHealth=0;
int currentMana=0;
int maxMana=0;
int location=0;
//Initialize Listener Object
Listener aListener= new Listener();
Location locationObj= new Location();
//images
private Image map;
private Image attribBackground;
private Image charMagic;
private Image charHybrid;
private Image charFighter;
private Image town;
private Image cave;
private Image forest;
private Image castle;
private Image characterIcon;
protected void initializeWindows()
{
mainwindow=new JFrame("Invictus Maneo");
mainwindow.setVisible(true);
mainwindow.setPreferredSize(new Dimension(900, 700));
mainwindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainwindow.setResizable(false);
panel1.setVisible(true);
panel1.setPreferredSize(new Dimension(800, 550));
mainwindow.getContentPane().add(panel1, BorderLayout.NORTH);
panel2.setVisible(true);
panel2.setPreferredSize(new Dimension(800, 100));
//Initializes buttons
startGame=new JButton("Begin Adventure");
panel2.add(startGame, BorderLayout.SOUTH);
startGame.addActionListener(aListener);
quitButton=new JButton("Quit");
panel2.add(quitButton, BorderLayout.SOUTH);
quitButton.addActionListener(aListener);
mapButton=new JButton("Map");
mapButton.addActionListener(aListener);
townButton=new JButton("Town");
townButton.addActionListener(aListener);
castleButton=new JButton("Castle");
castleButton.addActionListener(aListener);
exitButton=new JButton("Exit Map");
exitButton.addActionListener(aListener);
forestButton=new JButton("" +"Forest");
forestButton.addActionListener(aListener);
fighterSelect=new JButton("Fighter");
fighterSelect.addActionListener(aListener);
hybridSelect=new JButton("Hybrid");
hybridSelect.addActionListener(aListener);
magicSelect=new JButton("Magic");
magicSelect.addActionListener(aListener);
//initialize attribute panel
//attribpanel=new JPanel(new GridLayout(12,0));
attribpanel.setVisible(false);
attribpanel.setPreferredSize(new Dimension(200, 500));
attribpanel.setBackground(null);
attribpanel.add(charNameLabel);
attribpanel.add(charNameLabelField);
attribpanel.add(health);
attribpanel.add(healthAmount);
attribpanel.add(mana);
attribpanel.add(manaAmount);
attribpanel.add(strength);
attribpanel.add(strengthAmount);
attribpanel.add(agility);
attribpanel.add(agilityAmount);
attribpanel.add(intelligence);
attribpanel.add(intelligenceAmount);
mainwindow.getContentPane().add(panel2, BorderLayout.SOUTH);
panel3.setVisible(true);
panel3.setPreferredSize(new Dimension(200, 600));
panel4.setVisible(true);
panel4.setPreferredSize(new Dimension(650, 500));
panel5.setVisible(true);
panel5.setPreferredSize(new Dimension(600, 600));
panel5.setBackground(getBackground());
panel6.setVisible(false);
panel6.setPreferredSize(new Dimension(500, 500));
panel7.setVisible(false);
panel7.setPreferredSize(new Dimension(100, 200));
//Adds sub panels to panel 1
panel1.add(panel3, BorderLayout.NORTH);
panel1.add(panel4, BorderLayout.NORTH);
//panel5.setBorder(BorderFactory.createLineBorder (Color.black, 2));
//panel6.setBorder(BorderFactory.createLineBorder (Color.black, 2));
panel2.setBorder(BorderFactory.createLineBorder (Color.black, 2));
attribpanel.setBorder(BorderFactory.createLineBorder (Color.black, 2));
//panel4.setBorder(BorderFactory.createLineBorder (Color.black, 2));
panel4.add(panel5, BorderLayout.NORTH);
loadPictures();
BufferedImage myPicture;
try {
myPicture = ImageIO.read(new File("C:\\test\\GameTitle.jpg"));
JLabel gameTitle = new JLabel(new ImageIcon(myPicture));
panel5.add(gameTitle);
panel5.repaint();
panel1.repaint();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BufferedImage map;
try {
map = ImageIO.read(new File("C:\\test\\map.jpg"));
JLabel mapLabel = new JLabel(new ImageIcon(map));
panel6.add(mapLabel);
panel1.repaint();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mainwindow.pack();
}
void setAttributePanel(int s, int a, int i, int h, int m)
{
agi=a;
str=s;
intel=i;
currentHealth=h;
maxHealth=h;
currentMana=m;
maxMana=m;
System.out.println(agi+": agility");
agilityAmount.setText(agi+"");
attribpanel.repaint();
panel3.repaint();
panel1.repaint();
}
private class Listener implements ActionListener
{
public void actionPerformed(ActionEvent a)
{
if (a.getSource()==quitButton)
{
System.exit(0);
}
else if (a.getSource()==startGame)
{
startGame.setVisible(false);
panel2.add(mapButton);
mapButton.setVisible(true);
panel2.repaint();
panel5.setVisible(false);
panel3.add(attribpanel);
attribpanel.setVisible(true);
Character charChosenObj= new Character();
charChosenObj.characterCreation();
attribpanel.repaint();
panel3.repaint();
}
else if (a.getSource()==mapButton)
{
System.out.println("Where are you going?");
panel4.add(panel6, BorderLayout.CENTER);
panel4.add(panel7);
panel7.add(townButton);
panel7.add(forestButton);
panel7.add(castleButton);
panel7.add(exitButton);
panel5.setVisible(false);
panel6.setVisible(true);
panel7.setVisible(true);
panel4.repaint();
}
else if (a.getSource()==exitButton)
{
panel5.setVisible(true);
panel6.setVisible(false);
panel7.setVisible(false);
}
else if (a.getSource()==townButton)
{
System.out.println("Pick up some milk will ya?");
locationObj.setLocation(1);
}
else if (a.getSource()==forestButton)
{
System.out.println("Watch for falling trees.");
locationObj.setLocation(2);
Combat combatObj=new Combat();
combatObj.startCombat();
}
else if (a.getSource()==castleButton)
{
System.out.println("Are you sure... it's kinda dark in there?");
locationObj.setLocation(3);
}
}
}
getTextを実行すると正しい値が得られますか? – Thomas
'setAttributePanel'はどこで呼びますか?これは' setText'を実行しているメソッドで、どこからでも呼び出すことはできません。 –
私は@ringbearerと一緒にいます - あなたはこの問題を解決するのに十分な情報を示していません。私たちが知っている限り、複数のGraphicalInterfaceを表示することができ、表示されない他のGraphicalInterfaceを表示することができます。 –