我使用以下代码:
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();
}
}
尝试获得一个如下所示的新窗口:
[输入框]
[按钮]
- 文本 -
但由于某种原因,它总是这样:
[输入框] [按钮]
- 文本 -
答案 0 :(得分:1)
为什么不使用layouts? 这样,您就可以按照自己的方式组织UI元素。
答案 1 :(得分:1)
我不确定以下是否适用于GUI。但尝试它没有任何害处。
System.getProperty("line.separator")
使用上述代码代替"\n"
。在标签中,我尝试过几个像魅力一样的html标签。试试这个并提供反馈。
答案 2 :(得分:0)
您无法在GUI中使用“linebreaker”。 GUI的设计方式不同。如果要按建议输出,请使用布局。您可以将更多面板放在彼此内部以获得所需的效果,每个面板都有不同的布局。
或者第二种解决方案,但不确定它是否适用于Java,是使用绝对定位。您可以手动设置“框”的坐标。但这不是一个很好的解决方案。