\ n不适用于Linebreak - Java

时间:2013-05-19 16:32:44

标签: java swing line-breaks

我使用以下代码:

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URI;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Finder extends JFrame
{
       JPanel jp = new JPanel();
       JLabel jl = new JLabel("Credits: Andrew / JellyBellyFred");
       JTextField jt = new JTextField("Enter A Player Name, Then Press 'Find Skin'!", 30);
       JButton jb = new JButton("Find Skin");
       JLabel lnbreak = new JLabel("\n");

       public Finder()
       {
              setTitle("Minecraft Skin Finder");
              setVisible(true);
              setSize(500, 200);
              setDefaultCloseOperation(EXIT_ON_CLOSE);
              setResizable(false);

              jp.add(jt);
              jp.add(lnbreak);
              jp.add(jb);
              jb.addActionListener(new ActionListener()
              {
                      public void actionPerformed(ActionEvent e)
                      {
                             String input = jt.getText();
                             jl.setText("http://minecraft.aggenkeech.com/player/" + input);
                      }
              });

              jp.add(jl);
              add(jp);

       }


       public static void main(String[] args)
       {
             Finder t = new Finder();
       }
}

尝试获得一个如下所示的新窗口:

[输入框]

[按钮]

- 文本 -

但由于某种原因,它总是这样:

[输入框] [按钮]

- 文本 -

3 个答案:

答案 0 :(得分:1)

为什么不使用layouts? 这样,您就可以按照自己的方式组织UI元素。

答案 1 :(得分:1)

我不确定以下是否适用于GUI。但尝试它没有任何害处。

System.getProperty("line.separator")

使用上述代码代替"\n"。在标签中,我尝试过几个像魅力一样的html标签。试试这个并提供反馈。

答案 2 :(得分:0)

您无法在GUI中使用“linebreaker”。 GUI的设计方式不同。如果要按建议输出,请使用布局。您可以将更多面板放在彼此内部以获得所需的效果,每个面板都有不同的布局。

或者第二种解决方案,但不确定它是否适用于Java,是使用绝对定位。您可以手动设置“框”的坐标。但这不是一个很好的解决方案。