基本上我在我的Gui类中有一个方法可以打印和附加文本,我需要在其他类中使用该方法,比如我的Player类.我该如何使用该方法?如果我要在播放器类中制作另一个Gui对象,它会创建另一个JPanel,这会不好吗?如果我需要将该方法移动到另一个类是我的客人建议.多谢你们!
我有这个Gui课程:
public class Gui extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = -384241835772507459L;
JLabel playerInfo;
JTextField textField;
private final static String newline = "\n";
JTextArea feed;
JScrollPane scrollPane;
Player player;
public Gui() {
super("Erik's RPG");
setLayout(new FlowLayout());
textField = new JTextField(30);
textField.addActionListener(this);
feed = new JTextArea(15, 30);
feed.setEditable(false);
}
public void setCurrentPlayer(Player currentPlayer) {
player = currentPlayer;
playerInfo = new JLabel("Health = " + currentPlayer.getHealth() + " | Mana = " + player.getMana());
playerInfo.setBorder(BorderFactory.createTitledBorder(currentPlayer.getName())); …Run Code Online (Sandbox Code Playgroud) 我有这门课:
package com.erikbalen.game.rpg;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Gui extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = -384241835772507459L;
JLabel playerInfo;
JTextField textField;
private final static String newline = "\n";
JTextArea feed;
JScrollPane scrollPane;
Player player;
public Gui() {
super("Erik's RPG");
//setLayout(new FlowLayout());
Container contentPane = this.getContentPane();
contentPane.setLayout(new BoxLayout(contentPane,BoxLayout.PAGE_AXIS));
textField = new JTextField(30);
textField.addActionListener(this);
feed = new JTextArea(15, 30);
feed.setEditable(false);
scrollPane = new JScrollPane(feed);
}
Run Code Online (Sandbox Code Playgroud)
当你运行它时,它会使textField真的很高,如果我扩展它,即使我只希望它是一定的高度.我怎么能够
所以我有这个代码:
package com.erikbalen.game.rpg;
import com.erikbalen.platform.*;
import javax.swing.JFrame;
public class World extends Engine {
public static void main(String[] args) {
Gui display = new Gui(/*takes a Player argument so i can get certain variables*/);
display.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
display.setSize(300,220);
display.setVisible(true);
Player player1 = new Dps("ebalen", display);
Player player2 = new Healer("frankypanky", display);
}
}
package com.erikbalen.game.rpg;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Gui extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = -384241835772507459L;
private JLabel …Run Code Online (Sandbox Code Playgroud) 我有一个文本区域,我想在我的游戏中显示消息,我想知道我将如何制作一个方法,将文本打印到文本区域.这是我的GUI类:
package com.erikbalen.rpg;
import com.erikbalen.core.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Gui extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = -384241835772507459L;
private JLabel playerInfo;
private JTextField textField;
private final static String newline = "\n";
private JTextArea textArea;
private JScrollPane scrollPane;
public Gui(Player currentPlayer) {
super("Erik's RPG");
setLayout(new FlowLayout());
playerInfo = new JLabel(
"<html>Health = " + currentPlayer.getHealth()
+ " | " + "Mana = " + currentPlayer.getMana() + "</html>");
playerInfo.setBorder(BorderFactory.createTitledBorder( …Run Code Online (Sandbox Code Playgroud) 我的LogCat说:
java.lang.RunTimeException: Unable to instantiate activity ComponentInfo{com.erikbalen.idealgaslawcalculator/com.erikbalen.idealgaslawcalculator.NumberActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity{ActivityThread.java:2121}
Run Code Online (Sandbox Code Playgroud)
这是我的java文件:
public class NumberActivity extends Activity {
EditText pressure = (EditText) findViewById(R.id.editTextPressure);
EditText temperature = (EditText) findViewById(R.id.editTextTemperature);
EditText volume = (EditText) findViewById(R.id.editTextVolume);
TextView answer = (TextView) findViewById(R.id.textViewSolve);
Button solve = (Button) findViewById(R.id.buttonSolve);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_number);
solve.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double pressureValue = Double.parseDouble(pressure.getText().toString());
double temperatureValue = Double.parseDouble(temperature.getText().toString());
double volumeValue = Double.parseDouble(volume.getText().toString());
double r = 0.0821;
double answerValue = (pressureValue*volumeValue)/(r*temperatureValue);
answer.setText(Double.toString(answerValue)); …Run Code Online (Sandbox Code Playgroud) 在这段代码中:
protected void open() {
if (fc.showOpenDialog(Main.this) == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
}
}
Run Code Online (Sandbox Code Playgroud)
如何获取内容file并将其设置为名为的文本区域textarea?
java ×6
swing ×4
jtextarea ×3
methods ×2
object ×2
android ×1
arguments ×1
boxlayout ×1
class ×1
constructor ×1
file ×1
jscrollbar ×1
jscrollpane ×1