JAVA用frame实现图中2个窗口 怎么写啊? 100

 我来答
不灭归元
2021-11-25
知道答主
回答量:39
采纳率:100%
帮助的人:1.7万
展开全部

图片看起来很模糊,隐约看到需要一个登录窗口,那就分享一下以前练习的登录窗口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;

    }

}


凌帝导师吖
2021-11-25
知道答主
回答量:38
采纳率:0%
帮助的人:2.1万
展开全部
1.AWT包括了很多类和接口,用于Java Application的GUI编程,GUI包括各种的元素,如:窗口,按钮,文本框等。

2.AWT中的两个核心类为Container和Component。

3.Frame是Window的子类,由Frame或其子类创建的对象为一个窗体,构造方法如下:

Frame()

Frame(String s)//创建标题栏为字符串s的窗口

4.创建一个简单地窗口,代码如下:

import java.awt.*;

public class Frame1 {
public static void main(String[] args) {
Frame a = new Frame("Frame");//new一个frame对象

a.setSize(50,50);//设置大小

a.setBackground(Color.red);//设置背景颜色

a.setLocation(100,100);//设置窗口的宽和高

a.setResizable(false);//设置窗口大小为不可变

a.setVisible(true);//是把图形界面设置为可见

}

}

5.FlowLayout是Pannel默认的布局管理器,panel不能独立显示,必须加在某个容器中,FlowLayout对组件默认的对齐方式是居中。

构造方法如下:

new FlowLayout(FlowLayout.LEFT,20,30);//左对齐,组件之间水平之间距离为20个像素,垂直距离为30个像素

new FlowLayout(FlowLayout.RIGHT);//右对齐,水平和垂直距离为缺省值5

new FlowLayout();//使用缺省的居中对齐方式,水平和垂直间距为缺省值5

6.现在编一个小程序,来熟悉一下FlowLayout的用法:

import java.awt.*;

public class Frame2 {
public static void main(String[] args) {
Frame a = new Frame("选一下");

FlowLayout b = new FlowLayout(FlowLayout.RIGHT,10,20);//

a.setLayout(b);

a.setLocation(100,200);

a.setSize(100,200);

a.add(new TextField("你心情好吗?"));

a.add(new Button(" YES"));

a.add(new Button(" NO"));

a.setVisible(true);

}

}程序执行后拉动窗口的大小,窗口中的组件的排列会自动发生变化

0818b9ca8b590ca3270a3433284dd417.png

7.pack()方法默认窗口的大小,可在未设置窗口大小时使用 8.BorderLayout是Frame类的默认布局管理器,BorderLayout可以分为东西南北中五个区域,每个区域只能放一个组件,不指定组件的加入位置,默认为加入中间的位置 用法: Button b = new Button("aa"); a.add(b.BorderLayout.WEST); //相当于:a.dd(b,"West"); 9.GridLayout布局管理器将空间划分成规则的矩形网格,每个网格区域大小相等 用法: GridLayout(3,4);//3表示行数,4表示列数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是worden
2021-11-25 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:281
采纳率:40%
帮助的人:23.9万
展开全部
这个很简单,如果不加事件的话只需要放组件就行
一个是三个JText文本框,,只需要设置一下宽高就行,外加一个JButton
另一个是两个JText加一个JButton

其中JText设置一下长宽就行,需要注意的是第一个是需要将JText和JButton放在一起的,好像是用JLabel框起来,具体的记不清了,你可以参考下楼下的回答,或者网上找找,第二个不需要框,至于距离,应该是有个布局方式是调距离来着,忘记是啥了,JFrame组件基本用不上,你也没必要深入研究
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
红颜他不红

2022-06-27 · 超过129用户采纳过TA的回答
知道小有建树答主
回答量:2117
采纳率:54%
帮助的人:64.6万
展开全部
功能实现如下几点: 1.建立一个窗口; 2.窗口有标题; 3.窗口大小设置; 4.窗口位置设置; 5.窗口可见。 代码如下: importjava.awt.Frame;classstudyframe {publicstaticvoidmain(String.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
love2012的家

2021-11-29 · TA获得超过618个赞
知道大有可为答主
回答量:6596
采纳率:100%
帮助的人:192万
展开全部
您好,查看Frame相关的API你就知道怎么写了。其实和写HTML差不多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式