【发布时间】:2012-02-08 05:53:11
【问题描述】:
有人知道为什么我的窗口的内容没有放在中间吗?
内容只是转到左上角,无论我做了什么修改:我不知道为什么...
我想在 page-y 轴上使用一个简单的 BoxLayout:
package myview;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.io.IOException;
import javax.swing.*;
import Model.Words;
public class MyWindow extends JFrame {
JLabel myWord = new JLabel();
public MyWindow(){
this.setSize(500, 300);
this.setVisible(true);
this.setLocationRelativeTo(null);
JPanel listPane = new JPanel();
listPane.setLayout(new BoxLayout(listPane, BoxLayout.Y_AXIS));
//listPane.setAlignmentX(Component.CENTER_ALIGNMENT);
Words words = new Words();
this.myWord.setText(words.getWord());
listPane.add(myWord);
JLabel myWord2 = new JLabel("test");
listPane.add(myWord2);
this.setContentPane(listPane);
//, BorderLayout.CENTER
//buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS));
}
public static void main (String[] args){
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
MyWindow mywindow = new MyWindow();
mywindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mywindow.setVisible(true);
}
});
}
}
感谢您的帮助
【问题讨论】:
-
1) 为了尽快获得更好的帮助,请发帖 SSCCE。 2) 请使用常见的 Java 命名法(例如,小写的包名称) 3) 请找到您的转变 ke 并将其应用于每个句子的第一个单词,以及单词 'I' & 适用于 API 类的任何地方。 4) 不要扩展
JFrame。 5) 不要打电话给setSize()6)Fenetre?那是什么语言?请在发布到以英语为基础的网站的代码中使用英语等效项。 (尽管这对于任何开源来说都是一个很好的原则。) -
@Andrew Thompson 好的 ;) JFrame 呢?和设置大小?你对我的问题有什么想法吗?谢谢
-
"okay done" 到底做了什么?注意到我推荐了 6 个点,但唯一可以立即观察到的固定点是第 (2) 点。 “JFrame 怎么样?” 更喜欢组合而不是继承(搜索短语)。 "and setSize?" 改为调用
pack()。 “你对我的问题有什么想法吗?”我已经提到过了。 发布 SSCCE。 -
@Andrew Thompson:好吧,放松一下……我编辑了帖子以适应建议,你希望我缩短代码吗?我想如果我只发布构造函数的代码,人们可能没有足够的时间来了解问题出在哪里。我发现如果我在另一个
JPanel()中添加listPane它实际上可以工作,也许你有更好的选择?我不确定在这里使用最好的技术......如果它不符合要求,很抱歉,如果是这种情况,请告诉我(以及未遵循 SSCCE 的哪一部分)。再一次,放松,呃 :) -
“好吧,放松一下” 好吧,看看那该死的 SSCCE 文件。如果里面有什么你不明白的,问。您最新评论中的大多数问题都在其中明确解决。 (别担心我,如果你找不到解决方案,也没有任何压力。)