0

我正在使用以下代码:

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();
       }
}

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

[输入框]

[按钮]

- 文本 -

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

[输入框] [按钮]

- 文本 -

4

3 回答 3

1

你为什么不使用布局呢?通过这种方式,您可以完全按照您的意愿组织您的 UI 元素。

于 2013-05-19T16:35:04.543 回答
1

我不确定以下是否适用于 GUI。但是尝试一下也没有坏处。

System.getProperty("line.separator")

使用上面的代码代替"\n". 在标签中,我尝试了一些 html 标签,它们就像一个魅力。试试这个并提供您的反馈。

于 2013-05-19T18:02:30.447 回答
0

您不能在 GUI 中使用“换行符”。GUI的设计方式不同。如果要按建议输出,请使用布局。您可以将更多面板相互放置以获得所需的效果,每个面板都有不同的布局。

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

于 2013-05-19T16:38:59.797 回答