当前位置 : 主页 > 编程语言 > java >

《Java 核心技术 卷1》 笔记 第七章 图形程序设计(3)

来源:互联网 收集:自由互联 发布时间:2022-07-13
7.5 决定窗体的大小 如果没有明确给出窗体大小,默认值0*0 处理框架提示: 只包含标准组件,可以用下面的代码设置为刚好放下的大小:pack,全屏:frame.setExtendedState(Frame.MAXIMIZED_BOTH);


7.5 决定窗体的大小

如果没有明确给出窗体大小,默认值0*0

处理框架提示:

  • 只包含标准组件,可以用下面的代码设置为刚好放下的大小:pack,全屏:frame.setExtendedState(Frame.MAXIMIZED_BOTH);
  • import javax.swing.*;
    import java.awt.*;
    public class Main {
    public static void main(String[] args){
    Main solution = new Main();
    EventQueue.invokeLater(new Runnable() {
    @Override
    public void run() {
    MyFrame myFrame = solution.new MyFrame();
    myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    myFrame.setVisible(true);
    }
    });


    }

    class MyFrame extends JFrame {
    public MyFrame(){

    //标题
    setTitle("hello");
    Toolkit toolkit = Toolkit.getDefaultToolkit();
    Image icon = toolkit.getImage("src\\resource\\background.jpeg");
    setIconImage(icon);
    Dimension screeSize = toolkit.getScreenSize();
    int width = screeSize.width;
    int height = screeSize.height;
    // myFrame.setSize(width/2,height/2);
    setLocation(new Point(width/4,height/4));
    setResizable(true);
    Label l =new Label("123");
    add(l);
    pack();
    // setExtendedState(Frame.MAXIMIZED_BOTH);
    }
    }

    《Java 核心技术 卷1》 笔记 第七章 图形程序设计(3)_核心技术

    改成全屏:

    《Java 核心技术 卷1》 笔记 第七章 图形程序设计(3)_p2p_02

  • 考虑关闭时记录大小、位置,启动时进行回复。
  • 多屏幕显示应用,应利用GaphicsEnvironment 和GraphicsDevice 类获得显示屏幕大小。
  • 以下效果需要多个显示器:

    import javax.swing.*;
    import java.awt.*;
    public class Main {
    public static void main(String[] args){
    Main solution = new Main();
    EventQueue.invokeLater(new Runnable() {
    @Override
    public void run() {
    GraphicsEnvironment ge = GraphicsEnvironment.
    getLocalGraphicsEnvironment();
    GraphicsDevice[] gs = ge.getScreenDevices();
    for (int j = 0; j < gs.length; j++) {
    GraphicsDevice gd = gs[j];
    GraphicsConfiguration[] gc =
    gd.getConfigurations();
    for (int i=0; i < gc.length; i++) {
    MyFrame f = solution.new MyFrame();
    f.setBounds(gc[i].getBounds());
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    }
    }
    }
    });


    }

    class MyFrame extends JFrame {
    public MyFrame(){
    init();

    }

    public MyFrame(GraphicsConfiguration gc){
    super(gc);
    init();
    }

    private void init(){
    //标题
    setTitle("hello");
    Toolkit toolkit = Toolkit.getDefaultToolkit();
    Image icon = toolkit.getImage("src\\resource\\background.jpeg");
    setIconImage(icon);
    Dimension screeSize = toolkit.getScreenSize();
    int width = screeSize.width;
    int height = screeSize.height;
    // myFrame.setSize(width/2,height/2);
    setLocation(new Point(width/4,height/4));
    setResizable(true);
    Label l =new Label("123");
    add(l);
    // pack();
    // setExtendedState(Frame.MAXIMIZED_BOTH);
    }
    }
    }

    《Java 核心技术 卷1》 笔记 第七章 图形程序设计(3)_linq_03

  • GraphicsDevice 类允许在全屏模式下执行应用程序。
  • 7.6 组件中的显示信息

  • JComponent 组件透明
  • JPanel 组件不透明
  • 两者都可覆盖 来自 Jcomponent 类的:protected void paintComponent(Graphics g) ;绘制文字或图形。
  • import javax.swing.*;
    import java.awt.*;
    public class Main {
    public static void main(String[] args){
    Main solution = new Main();
    EventQueue.invokeLater(new Runnable() {
    @Override
    public void run() {
    NotHelloWorldFrame frame = solution.new NotHelloWorldFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    }
    });


    }

    class NotHelloWorldFrame extends JFrame{
    public static final int D_WIDTH = 300;
    public static final int D_HEIGHT = 200;
    public NotHelloWorldFrame(){
    setTitle("NotHelloWorld");
    setSize(D_WIDTH,D_HEIGHT);
    Toolkit t = Toolkit.getDefaultToolkit();
    Dimension d = t.getScreenSize();
    setLocation((d.width-D_WIDTH)/2,(d.height-D_HEIGHT)/2);
    NotHelloWorldPanel panel = new NotHelloWorldPanel();
    add(panel);
    }
    }

    class NotHelloWorldPanel extends JPanel{
    public static final int M_X = 75;
    public static final int M_Y = 100;
    public void paintComponent(Graphics g){
    g.drawString("Not Hello Program",M_X,M_Y);
    }
    }
    }

    《Java 核心技术 卷1》 笔记 第七章 图形程序设计(3)_linq_04

      系列内容:

    《Java 核心技术 卷1》 笔记:第一章 Java程序设计概述

    《Java 核心技术 卷1》 笔记:第二章 Java程序设计环境

    《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(1)

    《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(2)

    《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(3)

    《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(4)

    《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(5)

    《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(6)

    《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(7)大数处理、数组、多维数组、控制台传参

    《Java 核心技术 卷1》 笔记 第四章:类与对象

    《Java 核心技术 卷1》 笔记 第四章:类与对象(2) GregorianCalendar 与 类的基本组成

    《Java 核心技术 卷1》 笔记 第四章:类与对象(3) 构造器全局私有方法

    《Java 核心技术 卷1》 笔记 第四章:类与对象(4) 静态字段+静态方法+工厂方法

    《Java 核心技术 卷1》 笔记 第四章:类与对象(5) 形参与实参 构造器的默认值与默认构造

    《Java 核心技术 卷1》 笔记 第四章:类与对象(6) 构造器调用与初始化块

    《Java 核心技术 卷1》 笔记 第四章:类与对象(7) 注释、JavaDoc与类设计

    《Java 核心技术 卷1》 笔记 第五章 继承

    《Java 核心技术 卷1》 笔记 第五章 继承(2)

    《Java 核心技术 卷1》 笔记 第五章 继承(3)

    《Java 核心技术 卷1》 笔记 第五章 继承(4)equals方法

    《Java 核心技术 卷1》 笔记 第五章 继承(5)hashCode 与 toString

    《Java 核心技术 卷1》 笔记 第五章 继承(6) 泛型

    《Java 核心技术 卷1》 笔记 第五章 继承(7) 包装类和可变数组

    《Java 核心技术 卷1》 笔记 第五章 继承(8) 枚举类与类反射

    《Java 核心技术 卷1》 笔记 第五章 继承(9) 异常捕获与反射运用

    《Java 核心技术 卷1》 笔记 第五章 继承(10)反射

    《Java 核心技术 卷1》 笔记 第五章 继承(11)反射泛型数组+方法指针+类设计技巧

    《Java 核心技术 卷1》 笔记 第六章 接口和内部类

    《Java 核心技术 卷1》 笔记 第六章 接口和内部类(2)

    《Java 核心技术 卷1》 笔记 第六章 接口和内部类(3) 接口回调与内部类

    《Java 核心技术 卷1》 笔记 第六章 接口和内部类(4) 局部内部类和局部内部类引用方法变量分析

    《Java 核心技术 卷1》 笔记 第六章 接口和内部类(5) 匿名内部类和静态内部类

    《Java 核心技术 卷1》 笔记 第六章 接口和内部类(6) 静态代理

    《Java 核心技术 卷1》 笔记 第六章 接口和内部类(7) 动态代理

    《Java 核心技术 卷1》 笔记 第七章 图形程序设计

    《Java 核心技术 卷1》 笔记 第七章 图形程序设计(2)

    喜欢的话,点个赞吧~!平时做题,以及笔记内容将更新到公众号。

    关注公众号,互相学习:钰娘娘知识汇总

    《Java 核心技术 卷1》 笔记 第七章 图形程序设计(3)_c#_05

    网友评论