图形化界面:GUI
创建一个新界面:
模板:
import javax.swing.*;
public class test {
public static void main(String[] args) {
//创建一个主界面
JFrame gameJframe = new JFrame();
gameJframe.setSize(580,600);//设置大小先宽后高。
gameJframe.setVisible(true);//设置窗口可见//true可见,false不可见。
}
}
添加图片。
黑框下的电影查询系统
电影定义
public class movie {
private int id;
private String name;
private String actor;
public movie(int id,String name,String actor) {
this.id = id;
this.name = name;
this.actor = actor;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getActor() {
return actor;
}
public void setActor(String actor) {
this.actor = actor;
}
}
界面设计
public class movieoperator {
private movie[] movies;
public movieoperator(movie[] movies){
this.movies=movies;
}
public void findAllmovie(){
for(int i=0;i<movies.length;i++){
movie m=movies[i];
System.out.println("电影编号是:"+m.getId());
System.out.println("电影名称是:"+m.getName());
}
}
public void findbyid(int id){
for(int i=0;i<movies.length;i++){
movie m=movies[i];
if(m.getId()==id){
System.out.println("电影编号是:"+m.getId());
System.out.println("电影名称是:"+m.getName());
System.out.println("电影演员是:"+m.getActor());
return;
}
}
System.out.println("没有找到该电影");
}
}
运行
import java.util.Scanner;
// 定义 Movie 类
public class system{
public static void main(String[]args){
System.out.println("---欢迎来到电影管理系统---");
System.out.println("操作功能请选择1、2或者3");
System.out.println("1.查询所有电影");
System.out.println("2.根据电影编号查询电影");
System.out.println("3.退出系统");
movie[] movies = {
new movie(1, "血观音", "文淇"),
new movie(2, "风犬少年的天空", "张婧仪"),
new movie(3, "我要我们在一起", "张婧仪")
};
Scanner sc = new Scanner(System.in);
movieoperator mo = new movieoperator(movies);
while(true){
System.out.println("请输入您的选择:");
int choice = sc.nextInt();
if(choice==1){
mo.findAllmovie();
}
else if(choice==2){
System.out.println("请输入电影编号:");
int id = sc.nextInt();
mo.findbyid(id);
}
else if(choice==3){
System.out.println("感谢您的使用,再见!");
break;
}
else{
System.out.println("您的输入有误,请重新输入!");
}
}
}
}
集合进阶:
集合的体系结构:
list系列集合:添加的元素是有序、可重复、有索引
set系列集合:添加的元素是无序,不重复,无索引
Collection:接口
是单列集合的祖宗接口,功能是全部单列集合都可以继承使用
元素的对象:元素的具体内容。
contains()方法比较的是地址值。
如果想让比较的是内容,那么需要重写equals()方法
迭代器遍历:迭代器不依赖索引。
迭代器遍历示例代码:
import java.util.ArrayList;
import java.util.*;
public class test {
public static void main(String[] args) {
Collection<String> coll=new ArrayList<>();
coll.add("aa");
coll.add("bb");
coll.add("cc");
coll.add("dd");
Iterator<String> it=coll.iterator();
while(it.hasNext()){
String str=it.next();
System.out.println(str);
}
}
}
1.没有这个元素异常。
next方法:获取当前指向的元素,并且移动迭代器里面的指针。
增强for遍历:
示例代码:
import java.util.ArrayList;
import java.util.*;
public class test {
public static void main(String[] args) {
Collection<String> coll=new ArrayList<>();
coll.add("aa");
coll.add("bb");
coll.add("cc");
coll.add("dd");
for(String s:coll){
//s就是一个第三方变量,在循环的过程中依次表示集合中的每一个数据
System.out.println(s);
}
}
}
s仅仅是个第三方变量,不会改变集合中原本的数据。
Lambda表达式遍历:
foreach()方法底层就是一个循环遍历,依次得到集合中的元素。
import java.util.ArrayList;
import java.util.*;
import java.util.function.Consumer;
public class test {
public static void main(String[] args) {
Collection<String> coll=new ArrayList<>();
coll.add("aa");
coll.add("bb");
coll.add("cc");
coll.add("dd");
//匿名内部类的形式
/*coll.forEach(new Consumer<String>(){
@Override
public void accept(String s) {
System.out.println(s);
}
});*/
//Lambda表达式的形式
coll.forEach(s-> System.out.println(s));
}
}
总结sum