此代码在运行时会生成一个窗口,但不会生成指定的尺寸。这有什么问题?
import javax.swing.*;
import java.awt.*;
public class Windowing {
void JFrame(){
JFrame frames = new JFrame("Total recall");
frames.setSize(1000,8000);
frames.setVisible(true);
frames.pack();
//Buttons push = new Buttons();
//((Buttons) push).buttons();
JTextField wager = new JTextField(1);
wager.setSize(100,200);
wager.setVisible(true);
wager.setLocation(100, 200);
frames.add(wager);
//frames.add(push);
}
}
答案 0 :(得分:5)
您可以移除对frames.pack()
的通话;它会覆盖先前设置的帧大小。
但是, 想要做的是删除frames.setSize(1000,8000)
并将frames.pack()
移到方法的底部;这将确保框架足够大,可以显示其内容,但不能太大,无法放在屏幕上。
如果你在向框架添加任何内容之前调用pack
(就像你现在所做的那样),它会使窗口非常小;它可能出现在屏幕的左上角附近,但除非你知道在哪里看,否则你不会注意到它。
答案 1 :(得分:3)
看起来你在这里有很多“机会区”。
首先,您似乎将帧大小设置为1000x8000,因为您没有看到任何更改吗?
其次,您在textField上调用setVisible
,因为您也没有看到它。
最后你要设置文本字段的大小(我猜是因为你看到它占据了整个框架)
这里的问题是你必须在构造结束时调用pack
和setVisible
。此外,您还必须学习如何使用布局管理器和框架。
这两个链接会有所帮助:
我已经更改了您的代码,结果如下:
alt text http://img264.imageshack.us/img264/1557/capturadepantalla201001o.png
这是修改后的源代码。
import javax.swing.*;
import java.awt.*;
public class Windowing {
public static void main( String [] args ) {
Windowing windowing = new Windowing();
windowing.showFrame();
}
void showFrame(){
JFrame frame = new JFrame("Total recall");
JButton push = new JButton("Push");
JTextField wager = new JTextField(15);
// Panels do have "FlowLayout"
JPanel panel = new JPanel();
panel.add(wager);
panel.add(push);
frame.add( panel );
frame.pack();
frame.setVisible(true);
}
}
答案 2 :(得分:1)
尝试改为使用setPreferredSize(Dimension)
。