首页 > 编程语言 >复习JavaDay08

复习JavaDay08

时间:2023-05-28 22:36:32浏览次数:39  
标签:BorderLayout 复习 Frame Button JavaDay08 add new frame

GUI编程简介

Gui的核心技术:SwingAWT 1.因为界面不美观 2.需要jre环境! 为什么我们要学习? 1.可以写出自己心中想要的一些小工具 2.工作时候,也可能需要维护到swing界面,概率极小!3.了解MVC架构,了解监听!

第一个Frame窗口

public static void main(String[] args) {
  //创建一个图形化对象,设置标题
  Frame frame = new Frame("我的第一个Java图像界面窗口");

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

  //设置窗口大小
  frame.setSize(400, 400);

  //设置背景颜色,参数为Color对象
  frame.setBackground(new Color(78, 102, 119));

  //弹出的初始位置
  frame.setLocation(750, 300);

  //设置窗口大小固定:false为不可调节大小
  frame.setResizable(false);
}

Prnel布局面板

prnel是存在于窗口当中,窗口的最大部分为背景,类似于管理系统中除了上边栏和侧边栏之外的显示部分。

public static void main(String[] args) {
  //创建一个图形化对象,设置标题
  Frame frame = new Frame("       " + "贪吃蛇");
  //布局
  Panel panel = new Panel();

  //设置布局
  frame.setLayout(null);

  //设置窗口大小和初始坐标和和背景颜色
  frame.setBounds(300, 300, 500, 500);
  frame.setBackground(new Color(182, 155, 67));

  //设置布局大小和背景颜色
  panel.setBounds(50, 0, 450, 500);
  panel.setBackground(new Color(45, 175, 128));

  //布局对象加入窗口中
  frame.add(panel);

  //设置窗口大小固定:false为不可调节大小
  frame.setResizable(false);

  //设置窗口可见
  frame.setVisible(true);

  frame.addWindowListener(new WindowAdapter() {
      //窗口点击关闭时需要做的事情
      @Override
      public void windowClosing(WindowEvent e) {
          super.windowClosing(e);
          System.exit(0);
      }
  });
}

布局管理器

流式布局:布局的东西都居中

 public static void main(String[] args) {
      Frame frame = new Frame();

      Button button1 = new Button("bt1");
      Button button2 = new Button("bt2");
      Button button3 = new Button("bt3");

      //设置流式布局
      frame.setLayout(new FlowLayout());
      frame.setSize(400,400);

      frame.add(button1);
      frame.add(button2);
      frame.add(button3);

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

东西南北中布局

  //东西南北中布局
  public static void main(String[] args) {
      Frame frame = new Frame();

      Button east = new Button("East");
      Button west = new Button("West");
      Button south = new Button("South");
      Button north = new Button("North");
      Button center = new Button("Center");

      frame.add(east, BorderLayout.EAST);
      frame.add(west, BorderLayout.WEST);
      frame.add(south, BorderLayout.SOUTH);
      frame.add(north, BorderLayout.NORTH);
      frame.add(center, BorderLayout.CENTER);

      frame.setSize(400, 400);
      frame.setVisible(true);
  }
}

表格布局

 //表格布局
  public static void main(String[] args) {
      Frame frame = new Frame();

      Button but1 = new Button("but1");
      Button but2 = new Button("but2");
      Button but3 = new Button("but3");
      Button but4 = new Button("but4");
      Button but5 = new Button("but5");
      Button but6 = new Button("but6");

      frame.setLayout(new GridLayout(3,2));

      frame.add(but1);
      frame.add(but2);
      frame.add(but3);
      frame.add(but4);
      frame.add(but5);
      frame.add(but6);

      frame.pack();
      frame.setSize(400, 400);
      frame.setVisible(true);
  }
}

布局嵌套

//布局嵌套
public static void main(String[] args) {
  Frame frame = new Frame();
  //总大小
  frame.setSize(400, 300);
  //弹出的初始位置
  frame.setLocation(300, 400);
  //背景颜色
  frame.setBackground(Color.BLACK);
  //可见性
  frame.setVisible(true);
  //设置表格布局
  frame.setLayout(new GridLayout(2, 1));

  //4个面板
  Panel p1 = new Panel(new BorderLayout());
  Panel p2 = new Panel(new GridLayout(2, 1));
  Panel p3 = new Panel(new BorderLayout());
  Panel p4 = new Panel(new GridLayout(2, 2));

  //上面
  p1.add(new Button("East-1"), BorderLayout.EAST);
  p1.add(new Button("West-1"), BorderLayout.WEST);
  p2.add(new Button("p2-but-1"));
  p2.add(new Button("p2-but-2"));
  p1.add(p2,BorderLayout.CENTER);

  //下面
  p3.add(new Button("East-2"), BorderLayout.EAST);
  p3.add(new Button("West-2"), BorderLayout.WEST);

  //中间四个
  for (int i = 0; i < 4; i++) {
      p4.add(new Button("for-" + i));
  }
  p3.add(p4, BorderLayout.CENTER);
  frame.add(p1);
  frame.add(p3);
}

点击事件及关闭监听

class ClickEvent {
  //布局嵌套
  public static void main(String[] args) {
      Frame frame = new Frame();
      Button button = new Button();

      //因为监听器需要实现ActionListener,所以创建了MyActionListener类
      MyActionListener myActionListener = new MyActionListener();
      button.addActionListener(myActionListener);

      //布局设置居中
      frame.add(button, BorderLayout.CENTER);
      frame.pack();

      //调用关闭方法
      windowClose(frame);
      //可见度
      frame.setVisible(true);
  }

  //点击关闭事件
  public static void windowClose(Frame frame) {
      frame.addWindowListener(new WindowAdapter() {
          @Override
          public void windowClosing(WindowEvent e) {
              super.windowClosing(e);
              System.out.println("点击了关闭窗口");
              System.exit(0);
          }
      });
  }
}

//点击事件
class MyActionListener implements ActionListener {
  public void actionPerformed(ActionEvent e) {
      System.out.println("aaa");
  }
}

多个按钮设置一个监听

class ClickEvent {
  //布局嵌套
  public static void main(String[] args) {
      Frame frame = new Frame("开始-停止");
      Button button1 = new Button("statr");
      Button button2 = new Button("stop");

      //多个按键设置一个监听
      button2.setActionCommand("button2-stop");

      //因为监听器需要实现ActionListener,所以创建了MyActionListener类
      MyMonitor myMonitor = new MyMonitor();

      button1.addActionListener(myMonitor);
      button2.addActionListener(myMonitor);

      //布局设置居中
      frame.add(button1, BorderLayout.NORTH);
      frame.add(button2, BorderLayout.SOUTH);

      frame.pack();
      //可见度
      frame.setVisible(true);
      //调用关闭方法
      windowClose(frame);
  }

  //点击关闭事件
  public static void windowClose(Frame frame) {
      frame.addWindowListener(new WindowAdapter() {
          @Override
          public void windowClosing(WindowEvent e) {
              super.windowClosing(e);
              System.out.println("点击了关闭窗口");
              System.exit(0);
          }
      });
  }
}

//点击事件
class MyMonitor implements ActionListener {
  public void actionPerformed(ActionEvent e) {
      System.out.println("按键被点击了:" + e.getActionCommand());
      if (e.getActionCommand().equals("statr")) {
          System.out.println("小明");
      }else {
          System.out.println("小红");
      }
  }
}
 

标签:BorderLayout,复习,Frame,Button,JavaDay08,add,new,frame
From: https://www.cnblogs.com/a-sun/p/17438997.html

相关文章

  • 计算机组成原理 L02 指令集体系结构(ISA)复习-1
    计算机组成原理L02指令集体系结构(ISA)复习-1复习-1用作例题/课后题整理复习-2用作理论知识点整理如何使用大常数由于大数值范围:[-2^31,2^31-1],而I型指令常数字段只有16bits,所以需要使用两次I型指令。取立即数到寄存器高16位指令lui->loadupperimmediate与立即数进......
  • day108 - jdbc复习
    jdbc复习导包 <dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency>​​</......
  • 230526 // 小数论复习
    裁决已至!称量,你的罪恶!以此身,肃正万象!人总是越活越抽象的,所以怎么还不考期末,我要考期末!A.Minhttp://222.180.160.110:1024/contest/3641/problem/1给出\(n\)个数\(A_{1\simn}\),现求一组整数序列\(X_{1\simn}\)使得\(S=A_1\timesX_1+A_2\timesX_2+\cdots......
  • 软构复习5
    可维护性的常见度量指标可维护性:易于修改软件系统和组件来更正可扩展性灵活性可适应性:交互式系统(自适应系统)的能力,它可以根据所获得的关于用户及其环境的信息来适应个人用户的行为可管理性支持性高内聚,低耦合:要尽量避免其与其他类型的许多相互依赖而难以复用和维护的设计......
  • 复习JavaDay07
    线程的5种状态新生状态:Threadthread=newThread();就绪状态:当调用start()方法,线程立即进入就绪状态,但并不以为着立即调度执行运行状态:进入运行状态,线程才真正执行线程体的代码块。阻塞状态:当调用sleep(),wait或者同步锁时,线程进入阻塞状态,就是代码不往下执行阻塞事件解......
  • 关于软件构造第二部分(PPT4-8)的总结复习
    一、基本数据类型、对象数据类型基本数据类型:int、long、boolean、double等,——有值,无ID,无法区分,不可变,在栈中分配内存,代价低;对象数据类型:String、Date等——有值,有ID,可为可变也可为不可变,在堆中分配内存,代价昂贵;可将基本数据类型包装为动态数据类型(首字母变大写)通常在定义集合......
  • 数据结构期末复习——图的遍历
    图的遍历:1.定义:从某个结点出发访问遍图中结点,且使每个结点仅被访问一次图的遍历具有复杂性,主要体现在以下几点1.遍历没有规定从哪个结点开始访问,因此从任意结点开始访问均可2.图的一个结点可以连接多个结点,因此无法确定访问此结点之后应该访问哪一个结点3.如果一个图中存在回......
  • 移动互联APP复习题
    一.判断题1.Android是一种操作系统但不是一种开发平台。(F)2.Intent是用于传递参数和页面的切换的组件。(T)3.Android的更新需要在主线程上执行。(T)4.无论Service是以启动方式还是绑定方式运行都要重写onBind方法(T)5.后台服务是运行在另外一个线程上的也就是所谓的子线程。(F......
  • C语言复习题
    写在前面:大家好,我是花狗Fdog,来自内蒙古的一个小城市,目前在泰州读书。很感谢能有这样一个平台让我能够在这里分享所学所感。我喜欢编程,喜欢代码,喜欢去做一个程序员。努力学习,争取多年后,给亲人更好的生活。文章目录一、选择题二、填空题三、编程题一、选择题1.源程序TEST.C经......
  • 我的软考复习笔记【中级软件设计师】
    目录内聚与耦合内聚耦合统一过程(UP)软件体系结构风格软件能力成熟度模型(CMM)集成测试策略软件测试方法黑盒测试白盒测试需求UML分类协作图的边界类控制类实体类怎么区别null用例图的关系泛化(Inheritance)扩展(extend):包含(include):快速辨认类图的符号1.关联2.泛化3.聚合组件图设......