譬如想在实例化Frame的同时设定size
public class MyFrame extends Frame {
public MyFrame(String s, int width, int height) {
super(s)
super.setSize(width, height)
}
}
这样你实例化MyFrame的时候就已经设定好大小了,少写一些代码
public static void main(String args[]){
MyFrame frame = new MyFrame("My Frame", 300, 200)
}
同样功能的不继承,则需要
public static void main(String args[]){
Frame frame = new Frame("My Frame")
frame.setSize(300, 200)
}
clear?
图片看起来很模糊,隐约看到需要一个登录窗口,那就分享一下以前练习的登录窗口demo吧。
先上效果图:
登录界面
源码如下:
AbsoluteLoginFrame.java
public class AbsoluteLoginFrame extends JFrame {
private static final int LOGIN_WIDTH = 600
private static final int LOGIN_HEIGHT = 400
private static final long serialVersionUID = -2381351968820980500L
public AbsoluteLoginFrame(){
//设置窗口标题
setTitle("登录界面")
//设置一个初始面板,填充整个窗口
JPanel loginPanel = new JPanel()
//设置背景颜色
loginPanel.setBackground(new Color(204, 204, 204))//#CCC
loginPanel.setLayout(null)
JPanel centerPanel = new JPanel()
centerPanel.setBackground(Color.WHITE)
centerPanel.setBounds(114, 70, 360, 224)
centerPanel.setLayout(null)
JLabel jLabel = new JLabel("用户名:")
jLabel.setOpaque(true)
jLabel.setBackground(Color.YELLOW)
jLabel.setBounds(60, 60, 54, 20)
JLabel label = new JLabel("密 码:")
label.setOpaque(true)
label.setBackground(Color.CYAN)
label.setBounds(60, 90, 54, 20)
JTextField textField = new JTextField(15)
textField.setBounds(130, 60, 166, 21)
JPasswordField passwordField = new JPasswordField(15)
passwordField.setBounds(130, 90, 166, 21)
JButton jButton = new JButton("登录")
jButton.setBounds(148, 120, 62, 28)
centerPanel.add(jLabel)
centerPanel.add(label)
centerPanel.add(textField)
centerPanel.add(jButton)
centerPanel.add(passwordField)
loginPanel.add(centerPanel)
getContentPane().add(loginPanel)//将初始面板添加到窗口中
setSize(LOGIN_WIDTH, LOGIN_HEIGHT)//设置窗口大小
setLocation(Screen.getCenterPosition(LOGIN_WIDTH, LOGIN_HEIGHT))//设置窗口位置
setDefaultCloseOperation(EXIT_ON_CLOSE)//设置窗口默认关闭方式
setResizable(false)
setVisible(true)
}
public static void main(String[] args) {
new AbsoluteLoginFrame()
}
}
Screen.java
public class Screen {
private int width
private int height
public Screen(){
Toolkit toolkit = Toolkit.getDefaultToolkit()
Dimension screenSize = toolkit.getScreenSize()
this.width = screenSize.width
this.height = screenSize.height
}
public static Point getCenterPosition(int width, int height){
Screen screen = new Screen()
int x = (screen.getWidth() - width) / 2
int y = (screen.getHeight() - height) / 2
return new Point(x, y)
}
public int getWidth() {
return width
}
public void setWidth(int width) {
this.width = width
}
public int getHeight() {
return height
}
public void setHeight(int height) {
this.height = height
}
}
java中new关键字是用来创建对象实例的。frame
w=new
frame()应该是创建一个frame类的实例吧。
如果是JFrame
w
=
new
JFrame()就是用来创建一个
窗体对象
实例w。JFrame是java类库提供的类,用来创建
图形界面
窗体。