【发布时间】:2013-12-02 17:54:33
【问题描述】:
所以我希望将我导入的名为“Instructions.txt”的文本文件添加到 JFrame 中,以便玩家查看他/她是否选择查看指令。我可以让一个词出现在屏幕的最左侧,但没有别的。此外,如果我通过拖动一侧来调整窗口大小,则左侧第一个单词的顶部会显示多个单词。有什么想法吗?
//Battleship.java
import javax.swing.*;
import java.awt.*;
import java.util.Scanner;
import java.io.*;
import javax.swing.JOptionPane;
public class Battleship
{
public static void main (String[] args) throws IOException
{
String name = JOptionPane.showInputDialog("What is your name?");
String answer = JOptionPane.showInputDialog("Welcome to Battleship, "+name+". Would you like to see a set of instructions?");
if(answer.equals ("yes") || answer.equals ("Yes"))
{
TextFrame textframe = new TextFrame();
textframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Scanner scan = new Scanner (new File("Instructions.txt"));
while (scan.hasNext())
{
textframe.displayText(scan.next());
}
JFrame frame = new JFrame("Battleship");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Buttons b = new Buttons();
JPanel panel = new JPanel();
panel.add(b);
panel.setBackground(Color.blue);
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
frame.getContentPane().add (panel);
frame.pack();
frame.setVisible(true);
}
else
{
JFrame frame = new JFrame("Battleship");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Buttons b = new Buttons();
JPanel panel = new JPanel();
panel.add(b);
panel.setBackground(Color.blue);
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
frame.getContentPane().add (panel);
frame.pack();
frame.setVisible(true);
}
}
}
//TextFrame.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class TextFrame extends JFrame
{
public TextFrame()
{
setTitle("Instructions");
setSize(400,500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public void displayText(String text)
{
JLabel Text = new JLabel(text);
add(Text);
}
}
【问题讨论】: