Leonhap 2022-11-04 11:53 采纳率: 100%
浏览 115
已结题

java GUI panel中的Label组件如何换行

请问一下如何将label2换到第二行,而不是现在这样所有组件都在一行
代码下面有运行结果图

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Trial {
    public static void main(String[] args) {
       //创建一个Window对象
        JFrame frame=new JFrame("单项选择题标准化考试系统 —————诚信考试,拒绝舞弊");//创建Frame窗体
        Panel panel=new Panel();//创建Panel面板
        Button bto1=new Button("开始考试");//创建bto1按钮
        Button bto2=new Button("清空数据");//创建bto2按钮

        
        TextField tf1=new TextField("");//创建tf1学号输入编辑框
        tf1.setColumns(6);//设置编辑框长度
        TextField tf2=new TextField("");
        tf2.setColumns(6);
        Label lb1=new Label("学号-Student ID");
        Label lb4=new Label("密码-Password");
        Label lb2=new Label("※※※学号为000000的同学预开始考试,请自主核实学号");
        Label lb3=new Label("本题共5小题,每小题20分,共100分。在每小题给出的四个选项中,只有一个选项是正确的");
        
        //创建事件监听器,监听按钮bto1的点击动作
        ActionListener Listener=new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) { 
                String actionCommand=e.getActionCommand();
                    switch(actionCommand) {
                    case "开始考试":
                        String text=tf1.getText();
                        if(text.equals(""))//equals相等
                            lb2.setText("请检查你的学号是否输入再开始考试");
                        else lb2.setText("※※※学号为"+tf1.getText()+"的同学预开始考试,请自主核实学号");
                        break;
                    case "清空数据":
                        tf1.setText("");
                        tf2.setText("");
                        break;
                    default:;
                }
            }
            
        };
        bto1.addActionListener(Listener);
        bto2.addActionListener(Listener);

        panel.add(lb1);panel.add(tf1); //学号
        panel.add(lb4);panel.add(tf2); //密码
        panel.add(lb2);panel.add(bto1);//开始考试 清除数据
        panel.add(bto2);//将按钮bto1,编辑框tf1,tf2 置Panel面板
        panel.add(lb3);

        frame.add(panel);//将panel面板置入窗体
        //frame.pack(); //自动调整为最佳布局大小

        //设置window可见
        frame.setVisible(true);
    }
    
}



运行结果是这样的,所有组件都在一行:

img

我想换行换成这样:

img


label学号和编辑框在一行,label密码和编辑框在一行

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2022-11-04 12:07
    关注

    没有设置样式,需要给每个组件设置所在位置。
    调用如下方法,如:

    setBounds(250, 200, 100, 25);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月12日
  • 已采纳回答 11月4日
  • 创建了问题 11月4日

悬赏问题

  • ¥15 maccms影视模板 制作影视网站失败 求
  • ¥15 stm32按键设置闹钟数进退位不正常
  • ¥15 三电平逆变器中点电位平衡问题
  • ¥20 这怎么写啊 java课设
  • ¥15 用C语言完成一个复杂的游戏
  • ¥15 如何批量更改很多个文件夹里的文件名中包含文件夹名?
  • ¥50 MTK手机模拟HID鼠标出现卡顿
  • ¥20 求下下面这个数据结构代码
  • ¥20 前端 二进制文件流图片转化异常
  • ¥15 github上的这个C语言项目如何跑起来