📄 guicontrol.java
字号:
package rich;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;
public class GUIControl implements ActionListener{
MapControl mapControl; // reference for class
RollDie dice;
JFrame f; // reference for interface
Container contentPane;
JPanel Panel,textPanel;
JLabel picture;
JLabel nameText,ageText,genderText,cashinhandText,cashinbankText;
JButton rolldice;
int address; // reference for information
JLabel playerLayered;
Character player;
LogicControl logic;
ImageIcon displayImage ;
public GUIControl(LogicControl logic){
this.logic = logic; // get and initial Class
mapControl = new MapControl();
dice = new RollDie();
//***** draw interface*****
f = new JFrame("Main control bar"); // initial Frame
contentPane = f.getContentPane();
Panel = new JPanel(); // initial Panel
Panel.setLayout(new GridLayout(3,1));
picture = new JLabel(); // create a Picture Label
textPanel = new JPanel(); // create Text Panel
textPanel.setLayout(new GridLayout(5,1));
nameText = new JLabel(); // create information label
ageText = new JLabel();
genderText = new JLabel();
cashinhandText = new JLabel();
cashinbankText = new JLabel();
textPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.GRAY,3)," Information ",TitledBorder.CENTER,TitledBorder.TOP));
rolldice = new JButton(dice.getIcon()); // Rolldie Button
rolldice.addActionListener(this);
f.setLocation(780,150);
f.show();
f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ System.exit(0); }});
}
public void setCharacterInMap(Character player){ // put character in map , get reference for layer
playerLayered = mapControl.createCharacter(player);
player.setCharacterLayered(playerLayered);
}
public void turnPlayer(Character player){
this.player = player; // set user now
displayImage = player.getImage(); // change picture
picture.setIcon(displayImage);
picture.setVerticalAlignment(JLabel.CENTER);
picture.setHorizontalAlignment(JLabel.CENTER);
nameText.setText("Name : "+player.getName()); //change Information
ageText.setText("Age : "+player.getAge());
genderText.setText("Gender : "+player.getGender());
cashinhandText.setText("Cash In Hand : "+player.getCashInHand());
cashinbankText.setText("Cash In Bank : "+player.getCashInBank());
textPanel.add(nameText); // add information to TextPanel
textPanel.add(ageText);
textPanel.add(genderText);
textPanel.add(cashinhandText);
textPanel.add(cashinbankText);
Panel.add(picture); // add new Information to Panel
Panel.add(textPanel);
Panel.add(rolldice);
contentPane.add(Panel);
if(player.getPlayerType()=="Computer"){ // computer player processing
rolldice.setEnabled(false);
actionPerformed(new ActionEvent(player, address, null));
}else{ // humen player
rolldice.setEnabled(true);
}
f.pack();
}
public void actionPerformed(ActionEvent arg0) { //click button event
address = player.getAddress()+dice.getRoll(); //check rule
if(address<=40){
player.setAddress(address);
mapControl.move(player,player.getCharacterLayered(),address,"jump");
}else{
address-=40;
player.setAddress(address);
mapControl.move(player,player.getCharacterLayered(),address,"jump");
}
logic.turning();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -