需要先学习面对对象中的一些东西,构造函数,继承,接口什么的------

java类库包含一组Swing的包,让你能够提供GUI(图形用户界面),并接受来自键盘,鼠标和其他输入设备的用户输入
Swing包含以下GUI组件的应用程序:
1.框架:可以包含标题栏,菜单栏以及最大化,最小化和关闭按钮的窗口
2.容器:可包含其他组件的界面元素
3.按钮:可单击的区域,包含指出其用途的文本或图形
4.标签:提供信息的文本或图形
5.文本框或文本区域:接收键盘输入以及让用户能够编辑文本的窗口
6.下拉式列表:可从下拉式菜单或滚动窗口中选择的一组相关项
7.复选框和单选按钮:小框或圆圈,可被选中或取消选中
8.图标:可加入到按钮,标签,和其他组件中的图形
9.可滚动的窗格:用于放置用户界面容纳不下的组件,包含滚动条,可用于查看全部组件

swing组件位于javax.swing包中,这个包是java类库的标准组成部分。要通过Swing类的名称(即无须指定包名)引用它们,必须使用import语句导入该类或采用
import javax.swing.*;
用于支持GUI的其他两个包是:java.awt,java.awt.event处理用户输入的事件处理类
1. 使用Swing组件时,实际操纵的是该组件类的对象,你可以通过构造函数来创建组件,然后调用相应的方法来正确设置组件
2. 所有Swing组件都是抽象类JComponent 的子类,后者包含用于设置组件大小,修改背景颜色,定义文本字体以及工具提示。
3. 组件必须添加到容器(container)中,才能显示在用户界面上。容器是可以放置其他组件的组件。Swing容器是java.awt.Container的子类,包含用于在容器中添加或删除组件,使用布局管理器来排列组件以及设置容器边框的方法。容器通常可放置到其他容器内。

一:创建界面
要创建Swing应用程序,首先要创建一个表示主GUI的类。这个类的对象将用作容器,用于放置要显示的其他所有组件。
在很多项目中,主界面的对象都是框架JFrame类。【包含标题栏,菜单栏以及最大化,最小化和关闭按钮的窗口】

public class Main extends JFrame{//body of class
public Main(){//这个类的构造函数}
}
这个类的构造函数需要完成:
1.调用超类的构造函数,给框架指定标题及其他  setTitle();指定标题
2.设置框架大小,指定宽度和高度(单位:像素)setSize(int 宽,int 高)或Dimension(int 宽,int 高),或pack():将框架要包含的组件加入其中再调用pack().如果框架过大,pack()将其缩小到刚好能显示其中的组件;pack()将其扩大到刚好能显示其中的组件
3.决定用户关闭窗口怎么办
eg.setDeaultCloseOperation(JFrame.EXIT_ON_CLOSE);EXIT_ON_CLOSE:框架关闭时退出程序DO_NOTHING_ON_CLOSE 让框架打开并继续运行程序HIDE_ON_CLOSE  关闭框架并继续运行程序DISPOSE_ON_CLOSE 框架关闭时释放Java虚拟机(JVM)内存中的框架对象,并继续运行应用程序4.显示框架setVisible(true);

二:创建组件
要使用界面组件,可以创建该组件类的一个对象,刚刚创建过的容器类JFrame

组件JButton:可单击的按钮
按钮类的构造函数有三项:
1.JButton(String):创建一个带指定文本的按钮
2.JButton(Icon):创建一个包含指定文本和图标的按钮
3.JButton(String,Icon):创建一个包含指定文本和图标的按钮

eg.创建一个带指定文本为Play的按钮
JButton play=new JButton("Play");

三:将组件加入到容器内

最简单的容器是面板JPanel
JButton quit=new JButton("QUit");
JPanel panel=new JPanel();
panel.add(quit);
以上三行代码:创建一个按钮并把它加到面板中package com.company;
import javax.swing.*;
public class Main extends JFrame{JButton load=new JButton("Load");JButton save=new JButton("Save");JButton unsubscribe=new JButton("Unsubscribe");public  Main(){super("Button Frame");//框架的标题setSize(340,170);//框架的宽340,高170像素setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//框架关闭时退出程序JPanel panel=new JPanel();//创建一个JPanel对象panel.add(load);//,调用add()方法,将load按钮加入panel中panel.add(save);panel.add(unsubscribe);add(panel);//将panel加入框架JFrame中setVisible(true);//使JFrame可见}public static void main(String[] args) {Main bf=new Main();}
}


四.使用组件
注意:将组件加入面板和其他容器之前,务必设置好组件的所有属性

我的文件是Main.java/companypackage  com.company;
import javax.swing.*;
import java.awt.*;
public class Main{public static void main(String[] args){JFrame f=new JFrame("窗体标题");  //建立一个窗体窗体的标题为"窗体标题"f.setVisible(true);//设置窗体可见f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);// f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);// f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);/*EXIT_ON_CLOSE(按关闭那把×之后,隐藏窗口,并停止程序DO_NOTHING_ON_CLOSE 无任何操作,按什么都没用HIDE_ON_CLOSE 隐藏窗体,但不停止程序DISPOSE_ON_CLOSE释放窗体资源,所以关闭窗体之后过一会程序也结束*/f.setSize(300,200)//设置窗体的大小,宽300像素,高200像素f.setLocation(200,200);//设置坐标x:200,y:200.单位:像素//  以上两行可以写成这一个 f.setBounds(200,200,300,200);
// 200,200,是坐标x,y,300,200是大小宽高 width,heightContainer c=f.getContentPane();//获取窗体容器c.setBackground(Color.white);//设置背景颜色JLabel label=new JLabel("这是一个窗体");//建立一个label,label的内容为这是一个窗体c.add(label);//添加label组件到容器内//c.remove(label);//删除容器内的label组件c.validate();//验证容器中的组件// f.setResizable(false);设置窗体是否可以改变大小System.out.println("x="+f.getX()+" y="+f.getY());}
}


实际上开发是下面的这种
1.JFrame窗体

public class Main extends JFrame{//继承,让Main类成为子类,也成为窗体
public Main{//把上面的代码删除所有的"f."//eg.setVisible(true);setBounds(200,200,300,200);setTile("窗体的标题");}public static void main(){new Main();}
}
package  com.company;
import javax.swing.*;
import java.awt.*;
public class Main extends JFrame{public Main(){setTitle("窗体标题");setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(300,200);setLocation(200,200);//setBounds(200,200,300,200);Container c=getContentPane();c.setBackground(Color.white);JLabel l=new JLabel("this  is a jframe");c.add(l);//c.remove(l);c.validate();
// setResizable(false);System.out.println("x="+getX()+"  y="+getY());
}
public static void main(String[] args){new Main();}
}   

2.JDialog对话框窗体

package  com.company;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Main extends JDialog{public Main(JFrame frame){super(frame,"对话框标题",true);//super(父参数对象,对话框标题,是否阻塞父窗体);Container c=getContentPane();//获取窗体容器c.add(new JLabel("这是一个对话框"));//在容器内加label组件setBounds(100,100,100,100);}public static void main(String[] args){JFrame f=new JFrame("父窗体");//建立一个窗体f.setBounds(50,50,300,300);Container c=f.getContentPane();//获取窗体容器JButton btn=new JButton("弹出对话框");//建立一个buttonc.setLayout(new FlowLayout());//设置布局使用流布局c.add(btn);        //把button增加到在容器内f.setVisible(true); //窗体可见f.setDefaultCloseOperation(EXIT_ON_CLOSE);btn.addActionListener(new ActionListener() {//按钮的监听事件@Overridepublic void actionPerformed(ActionEvent e) {Main m=new Main(f);//一点击按钮就跳到Main的方法去,把父窗体f传进去m.setVisible(true);}});}}          

3.JLabel标签
标签是一个包含说明性文字,图标或两者兼有的用户组件
创建标签:
用构造函数:
1.JLabel(String):带指定文本的标签
2.JLabel(String,int)带指定文本和对齐方式的标签
3.JLabel(String,Icon,int )带指定文本,图标和对齐方式的标签
标签的对齐方式决定了其文本和图标窗口的占据区域的对齐关系。SwingConstants接口的三个静态类变量用于指定对齐方式:LEFT,CENTER,RIGHT。
标签的内容可以使用方法setText(String)或setIcon(Icon)来设置,
还可以使用getText()和getIcon()来获取这些内容

JLabel f=new JLabel("feeds:   ",SwingConstants.LEFT);左对齐
JLabel s=new JLabel("URL:  ",SwingConstants.CENTER);居中
JLabel w=new JLabel("DATA: ",SwingConstants.RIGHT);右对齐
panel.add(f);
panel.add(s);
panel.add(w);
package com.company;
import javax.swing.*;
import java.awt.*;
public class Main extends JFrame{public Main(){setBounds(100,100,100,100);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container c=getContentPane();setVisible(true);JLabel label =new JLabel("这是一个标签");//建立一个标签的内容为这是一个标签label.setText("更改标签内容");  //将标签内容为更改标签内容System.out.println(label.getText());//输出标签的内容label.setFont(new Font("楷体",Font.BOLD,15));//标签的字类型,加粗,字号为15label.setForeground(Color.GREEN);//标签的字体的颜色,更改前景色c.add(label);//将标签label加到容器内}public static void main(String[] args){new Main();}
}

4.Jlabel中添加图片

//JLabel picture添加图片用JLabel添加
package com.company;
import javax.swing.*;
import java.awt.*;
import java.net.URL;
public class Main extends JFrame{public Main(){setBounds(100,100,500,350);setDefaultCloseOperation(EXIT_ON_CLOSE);Container c=getContentPane();JLabel label=new JLabel("这是一个展示图片的标签");URL url=Main.class.getResource("java.jpg");//方法一:获取图片URL路径Icon icon=new ImageIcon(url);//获取相应路径下的图片文件label.setIcon(icon);//添加图片c.add(label);setVisible(true);label.setSize(20,20);//即使设置标签的大小,也不会改变图片大小}public static void main(String[] args) {new Main();}
}
方法一:URL url=Main.class.getResource("java.jpg");//方法一:获取图片URL路径Icon icon=new ImageIcon(url);//获取相应路径下的图片文件label.setIcon(icon);//添加图片
方法二:
Icon icon=new ImageIcon("D:\\idea code\\src\\com\\company\\java.jpg");//获取相应路径下的图片文件
label.setIcon(icon);//添加图片

我把图片保存在src中名字为javahe格式为jpg

我用的是我室友的表情包哈哈哈哈哈哈哈哈哈哈,她看到会打死我感觉

要想看图片的路径,可以右键图片java.jpg然后点Copy Path即可粘贴到第二种方法的路径下
5.JComboBox下拉框

package com.company;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class Main extends JFrame{public Main(){setBounds(100,100,190,120);setDefaultCloseOperation(EXIT_ON_CLOSE);Container c=getContentPane();c.setLayout(null);//空布局JComboBox<String> comboBox=new JComboBox<>();       //第一种方法String items[]={"identity card","student card","employee.card"};  //第一种方法ComboBoxModel cm=new DefaultComboBoxModel<>(items);  //第一种方法comboBox.setModel(cm);  //第一种方法setVisible(true);JButton btn=new JButton("打印");btn.addActionListener(new ActionListener() {//按下按钮发生以下事件输出下拉框选中的索引和选中的值@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("选中的索引:"+comboBox.getSelectedIndex());System.out.println("选中的值:"+comboBox.getSelectedItem());}});btn.setBounds(100,10,60,20);c.add(btn);comboBox.setBounds(10,10,80,21);c.add(comboBox);setVisible(true);}public static void main(String[] args) {new Main();}}
选中combobox中的内容按打印按钮输出的结果:
选中的索引:0
选中的值:identity card
选中的索引:1
选中的值:student card
选中的索引:2
选中的值:employee.card方法:添加combobox中的内容方法一:JComboBox<String> comboBox=new JComboBox<>();       String items[]={"identity card","student card","employee.card"};  ComboBoxModel cm=new DefaultComboBoxModel<>(items);  //创建一个下拉列表模型comboBox.setModel(cm);//向列表中添加数据模型方法二:
String items[]={"identity card","student card","employee.card"};
JComboBox<String> comboBox=new JComboBox<>(items);//使用String添加下拉列表元素方法三:
JComboBox<String> comboBox=new JComboBox<>();
comboBox.addItem("identity card");
comboBox.addItem("student card");
comboBox.addItem("employee.card");

加一行comboBox.setEditable(true);是否可以编辑,可以写下拉框的值,但是输出的索引为-1,是模型外的一种


6.JList下拉框

package com.company;
import javax.swing.*;
import java.awt.*;public class Main extends JFrame{public Main(){setBounds(100,100,217,16);setDefaultCloseOperation(EXIT_ON_CLOSE);Container c=getContentPane();c.setLayout(null);String items[]={"first","second","third","forth","fifth","sixth","seventh"};JList<String> jl=new JList<>(items);//给JList添加内容的第一种方法jl.setBounds(10,10,100,100);c.add(jl);setVisible(true);}public static void main(String[] args) {new Main();
}
}
/给JList添加内容的方法:
第一种;String items[]={"first","second","third","forth","fifth","sixth","seventh"};JList<String> jl=new JList<>(items);
第二种:DefaultListModel<String> model =new DefaultListModel<>();//列表框的数据模型for(String tmp:items){model.addElement(tmp);}JList<String> jl=new JList<>();//  model.addElement("添加元素");//添加元素jl.setModel(model);//列表载入数据模型

可以看到列表框的有些内容都没有显示出来
所以下面加滚动条使可以看到所有的内容

上面的代码改成下面的

String items[]={"first","second","third","forth","fifth","sixth","seventh"};
JList<String> jl=new JList<>(items);
JScrollPane js=new JScrollPane(jl);//为列表添加滚动条
js.setBounds(10,10,100,100);//不需要给JList设置坐标和大小
c.add(js);
package com.company;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class Main extends JFrame{public Main() {setBounds(100,100,217,167);setDefaultCloseOperation(EXIT_ON_CLOSE);Container c=getContentPane();c.setLayout(null);String items[]={"first","second","third","forth","fifth","sixth"};DefaultListModel<String> model =new DefaultListModel<>();//用的是第二种方法for(String tmp:items){model.addElement(tmp);}JList<String> jl=new JList<>();jl.setModel(model);JScrollPane js=new JScrollPane(jl);js.setBounds(10,10,100,100);c.add(js);/*1.SINGLE_SELECTION 单选模型 一次只能选择一个2.SINGLE_INTERVAL_SELECTION只能连续选择相邻的元素3.MULTIPLE_INTERVAL_SELECTION随便选*/jl.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);//设置选择模式JButton btn=new JButton("affirm");btn.setBounds(120,90,70,25);btn.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {java.util.List<String> values=jl.getSelectedValuesList();for(String tmp:values){System.out.println(tmp);}System.out.println("-------end---------");}});c.add(btn);setVisible(true);}public static void main(String[] args) {new Main();}
}


选择third之后按affirm出来third

7.JTextField文本框
文本框是界面上的一片区域,用户通过键盘输入,修改其中的内容。能够处理一行输入。
JTextField():空文本框
JTextField(int):指定宽度的文本框
JTextField(String,int):指定宽度,包含指定字符窜的文本框

package com.company;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class Main extends JFrame{public Main(){setBounds(100,100,250,100);setDefaultCloseOperation(EXIT_ON_CLOSE);Container c=getContentPane();c.setLayout(new FlowLayout());//流布局JTextField jt=new JTextField();//建立文本框jt.setColumns(20);//设置文本框长度为20个长度jt.setText("aa");//设置文本内容初始为aajt.setFont(new Font("楷体",Font.BOLD,20));//设置字体格式JButton btn=new JButton("affirm!");//一按确认键,输出文本内容,将文本框清空,获取焦点在文本框btn.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("文本框内容为:"+jt.getText());//得到文本框内容jt.setText("");//设置文本框的内容为空,清空文本框jt.requestFocus();//清空之后,想再输入将鼠标放进框内点击,但是用了requestFocus自动获取焦点,获取光标}});c.add(btn);c.add(jt);setVisible(true);}public static void main(String[] args) {new Main();}
}

8.JPasswordField密码框

package com.company;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class  Main extends JFrame{public Main() {setBounds(100,100,400,100);setDefaultCloseOperation(EXIT_ON_CLOSE);Container c=getContentPane();c.setLayout(new FlowLayout());//流布局JPasswordField jp=new JPasswordField();//建立密码框jp.setColumns(20);//设置密码框的长度为20个字符jp.setFont(new Font("Arial",Font.BOLD,18));//设置字体,第一个参数是默认值jp.setEchoChar('#');//不写这一行输入的密码就是小圆点,设置回显字符/*列如:我想要输出的密码为小星星样式[自己可以随意修改]注释掉 jp.setFont(new Font("Arial",Font.BOLD,18));写jp.setEchoChar('\u2605');*///添加动作监听-回车执行jp.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {char ch[]=jp.getPassword();//获取密码的字符数组String str=new String(ch);//将字符数组变成字符窜System.out.println(str);//输出字符窜也就是你输入的密码}});c.add(jp);setVisible(true);}public static void main(String[] args) {new Main();}}

9.JTextArea文本区域
文本区域是能处理多行输入的可编辑文本框。
JTextArea(int,int);行数和列数 为指定值的文本区域
JTextArea(String,int ,int )行数和列数 为指定值且包含指定文本的文本区域
getText()
getSelectedText()
setText(String)
append(String)将指定文本加到当前文本的末尾
insert(String,int)将指定文本插到指定位置
setLineWrap(boolean):指定文本在达到组件边界时,是否自动换行,如果为true,则自动换行
setWrapStyleWord(boolean)指定如何换行:是将当前单词(参数为true时)还是当前字符(参数为false)换到下一行

package com.company;
import javax.swing.*;
public class Main extends JFrame{JTextField username=new JTextField(15);JPasswordField password=new JPasswordField(15);JTextArea comments=new JTextArea(4,15);JButton ok=new JButton("OK");JButton cancel=new JButton("Cancel");public Main(){super("Account Information");setSize(300,220);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JPanel pane =new JPanel();JLabel usernameLabel=new JLabel("Username: ");JLabel passwordLabel=new JLabel("Password:  ");JLabel commentsLabel=new JLabel("Comments:      ");comments.setLineWrap(true);comments.setWrapStyleWord(true);pane.add(usernameLabel);pane.add(username);pane.add(passwordLabel);pane.add(password);pane.add(commentsLabel);pane.add(comments);pane.add(ok);pane.add(cancel);add(pane);setVisible(true);}public static void main(String[] args) {new Main();}}

package com.company;
import javax.swing.*;
import java.awt.*;public class Main extends JFrame{public Main(){setBounds(100,100,100,400);setDefaultCloseOperation(EXIT_ON_CLOSE);Container c=getContentPane();c.setLayout(new FlowLayout());JTextArea area=new JTextArea();area.setText("这是文本域");//设定文本内容area.setRows(5);//设定行area.setColumns(20);//设定列数,也就是宽area.append("添加内容");//添加内容area.insert("插入",2);//在第二个字符后面插入内容“插入”area.setFont(new Font("楷体",Font.BOLD,20));//设置字体JScrollPane js=new JScrollPane(area);//给文本域添加滚动条c.add(js);setVisible(true);}public static void main(String[] args) {new Main();}}

10.ImageIcon图标
图标是一个小图片,可被放置在按钮,标签或其他用户界面元素上

要创建ImageIcon对象,可调用其构造函数,并将图形文件名作为参数传递给它。
ImageIcon s=new ImageIcon("java.gif");
//很自然地认为当前类文件和图片在同一路径下即可。
//其实所谓的相对路径起点是工程的根目录,即project。
JButton btn=new JButton(s);
JPanel pane=new JPanel();
pane.add(button);
add(pane);
setVisible(true);
以上是加载文件java.gif中的图标,并创建了一个以该图标作为标签的JButton

可用的图标

package com.company;
import javax.swing.*;
public class Main extends JFrame{public Main(){super("Icon Frame");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JPanel panel=new JPanel();//create IconsImageIcon loadIcon=new ImageIcon("D:\\idea code\\src\\com\\company\\Load.png");ImageIcon saveIcon=new ImageIcon("D:\\idea code\\src\\com\\company\\Save.png");ImageIcon subscribeIcon=new ImageIcon("D:\\idea code\\src\\com\\company\\Subscribe.gif");ImageIcon unsubscribeIcon=new ImageIcon("D:\\idea code\\src\\com\\company\\Unsubscribe.gif");//creates buttonsJButton load=new JButton("Load",loadIcon);JButton save=new JButton("Save",saveIcon);JButton subscribe=new JButton("Subscribe",subscribeIcon);JButton unsubscribe=new JButton("Unsubscribe",unsubscribeIcon);//add buttons to panelpanel.add(load);panel.add(save);panel.add(subscribe);panel.add(unsubscribe);//add the panel to a frameadd(panel);pack();setVisible(true);}public static void main(String[] args) {new Main();}
}

11.监听事件
监听和事件
监听Listener ->盯着 事件Event
KeyListener 键盘 KeyEvent
MouseListener 鼠标 MouseEvent
WindowListener 窗体 WindowEvent
ActionListener 动作 ActionEvent

动作事件监听器
ActionListener 组件.addActionListener();
actionPerformed(ActionEvent e) 组件发生操作时调用的方法
ActionEvent为动作事件

Java-swing 学习相关推荐

  1. Java Swing学习:关于JButton,JLabel,JTabel的学习

    目录 项目场景: 问题描述: 解决方案: 1.如何实现表格实时更新及覆盖问题 2.如何处理JButton点击后,JLabel要正确变化 最后项目效果: 项目场景: 有学妹找我代写项目,实验内容如下图2 ...

  2. Java swing 学习笔记自用

    自用的,不是闲着无聊的建议不要看,不专业不认真不是分享态度,纯属自用. 看的b站视频:Java Swing入门课程_图形界面GUI编程_100集视频教程 讲得贼好贼细,不过时间太长了.而且没学过Jav ...

  3. Java Swing学习

    内容来源于<java语言程序设计>(郎波著)以及一些个人理解. 文章目录 一.JFC 简介 二.Swing简介 三.Swing组件类层次 四.创建基于Swing的应用程序GUI 五.L&a ...

  4. 在java swing学习中出现adding a window to a container错误如何解决

    1出现该问题的主要原因是因为: 不能把一个window(顶级窗口)放到一个container(容器)中去.就是你只能将小容器放大容器中去 查询继承关系可以了解在swing中各个容器之间的继承关系,JD ...

  5. java swing开发窗体程序开发(一)GUI编程

    Java SWing就是java提供的一个类库专门用于开发窗体程序的,相对于C#的winform,java swing的开发要比C#更加麻烦,他不像C#拥有可视化的界面编辑工具 而是需要像QT一样纯代 ...

  6. java基础学习——Swing图形化用户界面编程

    GUI概述 早期计算机系统中,电脑向用户提供的是单调.枯燥.纯字符状态的"命令行界面(CLI)".就是到现在,我们还可以依稀看到它们的身影:在Windows中开个DOS窗口,就可看 ...

  7. Java Swing的简单学习

    计算机软件实习记录(第一周)--Java Swing的简单学习 Swing的认识 1)Swing是一个用于开发Java应用程序用户界面的开发工具包(GUI工具包),是JAVA基础类的一部分. 2)它包 ...

  8. Java Swing 界面学习笔记

    目录 一.Java Swing组件之间的继承关系 二.JFrame 三.JDialog 四.常用面板 五.常用的组件 1.JLabel标签组件 2.JButton按钮组件 3.菜单栏 4.文本组件 5 ...

  9. Java语言学习--Swing中Button事件监听

    1 前言 今天在使用Java Swing中的JButton的事件触发机制时遇到了许多问题,简单的了解了一下. 2 事件监听机制 事件监听的机制如下图所示分析. 3 代码分析 3.1 分步解析 1.事件 ...

  10. Java培训学习步骤有哪些

    最近几年,有很多学习java技术的同学都有过半途而废的想法,认为java零基础是很难学会的,其实出现这样的问题,最主要的原因就是学习方法有问题,下面小编整理的Java培训学习步骤,希望能够帮助大家更有 ...

最新文章

  1. 判断直线与线段 是否相交 + 加入误差 故需要判断重点 poj 3304 Segments
  2. NET4.0.X中的状态机工作流
  3. 【Java 虚拟机原理】JDK 体系结构 | Java 源码运行原理 | Java 虚拟机内存
  4. Java设计模式(六):命令设计模式
  5. 电脑会显示android,怎么在电脑上显示、操作安卓手机
  6. 【Java】JScrollPane的内容显示与刷新问题
  7. 前端小白程序员入门之前知道这些,半年后都拿到8K+的offer
  8. UVA10739 String to Palindrome【记忆化搜索+DP】
  9. NLP --- 条件随机场CRF背景
  10. [leetcode]Longest Palindromic Substring
  11. 虚拟偶像养成记:人工智能人格化与IP化打造出完美“爱豆”
  12. python算方差_python 算方差
  13. vue全家桶指的是哪些?
  14. JS设置浏览器缩放比例
  15. 在可靠的头肩底中淘金(转 封起De日子)
  16. ngro_k服务器搭建(本地电脑与微信交互)
  17. 表格对决CSS--一场生死之战 (转自“清清月儿”)
  18. 统计一TXT文档中单词出现频率,输出频率最高的10个单词
  19. 数据元素、数据项、组合项、数据结构
  20. PostgreSQL设置字段默认值汇总(包含varchar,int,bool,时间,主键自增)

热门文章

  1. 【面向校招】操作系统面经总结
  2. CVPR 2019 ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language
  3. 计算机LCG/PCG/MWC/XorShift等PRNG算法,以及V8中Math.random()、webkit中crypto等随机算法的实现
  4. 用python画M2和GDP走势图
  5. Java使用EasyExcel下载xls、xlsx 出现文件格式与扩展名不匹配(亲测)
  6. 什么副业来钱快?有什么靠谱的副业可以做?
  7. 平安好医生技术栈的分析【转】
  8. 常见的监控摄像机的取流格式
  9. 2022数学建模竞赛暑期培训讲座——最优化方法:目标规划
  10. AspectJ in Action(2)