Java 如何使文本环绕JLabel?
这似乎是一个愚蠢的问题,但我做不到;我使用扫描仪读取文件,然后使用while循环将文本输入字符串,然后将其放入JLabel。但是,文本显示在一条很长的水平线上,如何使所有文本都像原始文本文件中的段落一样正常显示? 守则:Java 如何使文本环绕JLabel?,java,swing,text,jlabel,multiline,Java,Swing,Text,Jlabel,Multiline,这似乎是一个愚蠢的问题,但我做不到;我使用扫描仪读取文件,然后使用while循环将文本输入字符串,然后将其放入JLabel。但是,文本显示在一条很长的水平线上,如何使所有文本都像原始文本文件中的段落一样正常显示? 守则: class howToPlay implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { JFrame htp = new JFrame(); htp.s
class howToPlay implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
JFrame htp = new JFrame();
htp.setSize(300, 100);
htp.setLocationRelativeTo(null);
Scanner fileStream = null;
try {
fileStream = new Scanner(new File("text/howtoplay.txt"));
} catch (FileNotFoundException e1) {
System.out.println("File not found");
e1.printStackTrace();
}
String file = "";
while(fileStream.hasNextLine())file += fileStream.nextLine();
JLabel howToPlay = new JLabel(file);
htp.add(howToPlay);
htp.setVisible(true);
}
}
这是文件中的文本,是如何玩游戏的规则:
游戏的目的是移动你的棋子,直到它们都在一个相连的组中。对角线被认为是连接的。但是,需要遵循某些规则:
-怀特先动
-每一轮,玩家移动他的一个棋子,在一条直线上,与棋子的数量完全相同-任何一种颜色
沿着运动路线的任何地方。(这些是行动路线)。
-你可以跳过你自己的部分。
-你可能不会跳过对手的棋子,但你可以通过落地来捕捉他们。
-如果一名玩家因捕获而减少为一个棋子,则被捕获的玩家获胜。
-如果一个移动同时为移动的玩家和对手创造了胜利,移动的玩家将获胜。其实有不少
不寻常的结局,至少在理论上是可能的
感谢您的帮助。也许可以试试:)
看起来很奇怪,但对我来说效果很好。您可以使用HTML格式:prefix.setText()和:
您将能够在JLabel中使用HTML代码。例如:
label.setText("<html>First line<br>Second line");
label.setText(“第一行
第二行”);
因为每个答案都建议使用HTML,所以我只想提到一个JTextArea组件,或者更多的格式化选项,一个JTextPane。
label.setText("<html>First line<br>Second line");