Java学习之路--GUI编程04

发布时间 2023-09-20 18:30:17作者: 寂灭无言
package com.gui.lesson04;

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

//2023.3.21 GUI编程--dialog(弹窗)学习
public class DialogDemo extends JFrame {
public DialogDemo() {
this.setVisible(true);//设置窗口可见
this.setSize(700,500);
// this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//默认的关闭窗口事件setDefaultCloseOperation--Swing JFrame默认关闭窗口的
//dialog默认就有关闭事件,不用额外额写关闭事件

//JFrame 放东西,容器
Container container = this.getContentPane();//Container c=this.getContentPane();----初始化一个容器
// c.add(****); //在容器上添加控件..
// 或是:this.getContentPane().add();
//按钮
JButton button = new JButton("点击弹出一个对话框");//创建一个按钮 ()里写按钮的名称
button.setBounds(30,30,200,50);//设置这个按钮的位置和大小

//点击这个按钮的时候---弹出一个弹窗
button.addActionListener(new ActionListener() {//监听器
@Override
public void actionPerformed(ActionEvent e) {
//启动写的弹窗MyDialogDemo
new MyDialogDemo();

}
});//匿名内部类
container.add(button);//将这个按钮添加到容器中
}

public static void main(String[] args) {
//启动弹窗DialogDemo
new DialogDemo();
}
}

//弹窗的窗口
class MyDialogDemo extends JDialog{
//构造器
public MyDialogDemo() {
this.setVisible(true);//设置可见性
this.setBounds(100,100,500,500);//设置弹窗的位置和大小
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//默认的关闭窗口事件setDefaultCloseOperation--Swing JFrame默认关闭窗口的
//WindowConstants.EXIT_ON_CLOSE--点窗口的X直接关闭窗口
//WindowConstants.HIDE_ON_CLOSE--点窗口的X隐藏窗口--但程序仍然在运行
//WindowConstants.DISPOSE_ON_CLOSE--也是隐藏窗口,只不过这一种是隐藏的同时释放这个窗口占用的资源和空间
//WindowConstants.DO_NOTHING_ON_CLOSE--点X关闭不了窗口-不对窗口做任何处理

Container container = this.getContentPane();//Container c=this.getContentPane();----初始化一个容器
container.setLayout(null);//设置容器的布局

container.add(new Label("学java,跑路"));//往容器中添加一个标签

}
}

//
package com.gui.lesson04;

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

//2023.3.21 GUI编程--dialog(弹窗)学习
public class DialogDemo extends JFrame {
public DialogDemo() {
this.setVisible(true);//设置窗口可见
this.setSize(700,500);
// this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//默认的关闭窗口事件setDefaultCloseOperation--Swing JFrame默认关闭窗口的
//dialog默认就有关闭事件,不用额外额写关闭事件

//JFrame 放东西,容器
Container container = this.getContentPane();//Container c=this.getContentPane();----初始化一个容器
// c.add(****); //在容器上添加控件..
// 或是:this.getContentPane().add();
//按钮
JButton button = new JButton("点击弹出一个对话框");//创建一个按钮 ()里写按钮的名称
button.setBounds(30,30,200,50);//设置这个按钮的位置和大小

//点击这个按钮的时候---弹出一个弹窗
button.addActionListener(new ActionListener() {//监听器
@Override
public void actionPerformed(ActionEvent e) {
//启动写的弹窗MyDialogDemo
new MyDialogDemo();

}
});//匿名内部类
container.add(button);//将这个按钮添加到容器中
}

public static void main(String[] args) {
//启动弹窗DialogDemo
new DialogDemo();
}
}

//弹窗的窗口
class MyDialogDemo extends JDialog{
//构造器
public MyDialogDemo() {
this.setVisible(true);//设置可见性
this.setBounds(100,100,500,500);//设置弹窗的位置和大小
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//默认的关闭窗口事件setDefaultCloseOperation--Swing JFrame默认关闭窗口的
//WindowConstants.EXIT_ON_CLOSE--点窗口的X直接关闭窗口
//WindowConstants.HIDE_ON_CLOSE--点窗口的X隐藏窗口--但程序仍然在运行
//WindowConstants.DISPOSE_ON_CLOSE--也是隐藏窗口,只不过这一种是隐藏的同时释放这个窗口占用的资源和空间
//WindowConstants.DO_NOTHING_ON_CLOSE--点X关闭不了窗口-不对窗口做任何处理

Container container = this.getContentPane();//Container c=this.getContentPane();----初始化一个容器
container.setLayout(null);//设置容器的布局

container.add(new Label("学java,跑路"));//往容器中添加一个标签

}
}
//
package com.gui.lesson04;

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

//2023.3.22 GUI编程--Icon-图标(属于标签里面的一种),图标,需要实现类,Frame继承
public class IconDemo extends JFrame implements Icon {
private int width;//定义宽
private int height;//定义高

public IconDemo(){}//无参构造

public IconDemo(int width, int height){
this.width = width;
this.height = height;
}

public void init(){
IconDemo iconDemo = new IconDemo(15, 15);//初始化图标大小
//图标可以放在标签,也可以放在按钮上
JLabel label = new JLabel("iconTest", iconDemo, SwingConstants.CENTER);//设置图标放中间

Container container = getContentPane();//Container c=this.getContentPane();----初始化一个容器
container.add(label);//添加标签到容器中

this.setVisible(true);//设置可见性
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//默认的关闭窗口事件setDefaultCloseOperation--Swing JFrame默认关闭窗口的
}

public static void main(String[] args) {
new IconDemo().init();//启动
}

@Override
public void paintIcon(Component c, Graphics g, int x, int y) {// Graphics--画笔 Component--组件

g.fillOval(x,y,width,height);

}

@Override
public int getIconWidth() {//获得图片的宽
return this.width;
}

@Override
public int getIconHeight() {//获得图片的高
return this.height;
}
}
//
package com.gui.lesson04;

import javax.swing.*;
import java.awt.*;
import java.net.URL;

//2023.3.23 GUI编程--ImageIcon学习 ImageIcon--图片图标
public class ImageIconDemo extends JFrame {

public ImageIconDemo(){
//获得图片的地址
JLabel label = new JLabel("ImageIcon");//标签--()里写图片标签的名称
URL url = ImageIconDemo.class.getResource("头像.jpg");//获得图片的资源--这一句可以记住,后面学也会用到

ImageIcon imageIcon = new ImageIcon(url);//注意命名不要冲突了
label.setIcon(imageIcon);//设置图片
label.setHorizontalAlignment(SwingConstants.CENTER);//将这个图片标签居中显示

Container container = getContentPane();//Container c=this.getContentPane();----初始化一个容器
container.add(label);//将这个标签加入到容器中

setVisible(true);//设置可见性
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//默认的关闭窗口事件setDefaultCloseOperation--Swing JFrame默认关闭窗口的
setBounds(200,200,300,300);//设置标签的位置和大小

}

public static void main(String[] args) {
//启动
new ImageIconDemo();
}
}
//
package com.gui.lesson04;

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

//2023.3.21 --GUI编程--Swing的初识
//Swing 里面的窗口是JFrame JFrame 继承 Frame,实现WindowConstants这个接口
public class JFrameDemo {

//init();--初始化
public void init(){
//
JFrame jf = new JFrame("这是一个JFrame窗口");//()里和Frame窗口一样--用来设置这个窗口的名称
jf.setVisible(true);//设置可见性
jf.setBounds(100,100,200,200);//设置这个窗口的大小和位置
jf.setBackground(Color.cyan);//设置窗口的背景颜色--在这里面好像没什么卵用,设置了背景颜色和没设置没啥区别

//设置文字JLabel
JLabel label = new JLabel("今天是星期二23:07分,我在学习Java");//()里是写标签的内容是什么

jf.add(label);//将这个文字块label加入到JFrame窗口中

//关闭事件
jf.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);//默认的关闭窗口事件setDefaultCloseOperation--Swing JFrame默认关闭窗口的
//WindowConstants.EXIT_ON_CLOSE--点窗口的X直接关闭窗口
//WindowConstants.HIDE_ON_CLOSE--点窗口的X隐藏窗口--但程序仍然在运行
//WindowConstants.DISPOSE_ON_CLOSE--也是隐藏窗口,只不过这一种是隐藏的同时释放这个窗口占用的资源和空间
//WindowConstants.DO_NOTHING_ON_CLOSE--点X关闭不了窗口-不对窗口做任何处理

}

public static void main(String[] args) {
//建立一个窗口
new JFrameDemo().init();
}
}
//
package com.gui.lesson04;

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

//2023.3.21 GUI编程--Swing学习--JFrame窗口学习
public class JFrameDemo02 {
public static void main(String[] args) {
//启动窗口
new MyJFrame().init();
}
}

class MyJFrame extends JFrame{
public void init(){
this.setBounds(10,10,200,300);//设置这个窗口的位置和大小
this.setVisible(true);//设置这个窗口为可见

JLabel label = new JLabel("今天是星期二23:28分,我在学习Java");//()里是写标签的内容是什么
this.add(label);//将这个标签添加到窗口中

//让这个文本居中
label.setHorizontalAlignment(SwingConstants.CENTER);//setHorizontalAlignment--设置水平对齐--对齐方式为CENTER-水平居中

Container container = this.getContentPane();//Container c=this.getContentPane();----初始化一个容器
// c.add(****); //在容器上添加控件..
// 或是:this.getContentPane().add();
container.setBackground(Color.GRAY);//设置窗口的颜色-容器内的颜色才是这个窗口的颜色
}
}
//
package com.gui.lesson04;

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

//2023.3.21 GUI编程--Swing学习--JFrame窗口学习
public class JFrameDemo02 {
public static void main(String[] args) {
//启动窗口
new MyJFrame().init();
}
}

class MyJFrame extends JFrame{
public void init(){
this.setBounds(10,10,200,300);//设置这个窗口的位置和大小
this.setVisible(true);//设置这个窗口为可见

JLabel label = new JLabel("今天是星期二23:28分,我在学习Java");//()里是写标签的内容是什么
this.add(label);//将这个标签添加到窗口中

//让这个文本居中
label.setHorizontalAlignment(SwingConstants.CENTER);//setHorizontalAlignment--设置水平对齐--对齐方式为CENTER-水平居中

Container container = this.getContentPane();//Container c=this.getContentPane();----初始化一个容器
// c.add(****); //在容器上添加控件..
// 或是:this.getContentPane().add();
container.setBackground(Color.GRAY);//设置窗口的颜色-容器内的颜色才是这个窗口的颜色
}
}