Javaグラフィカルインターフェイスの実装
1.グラフィカルインターフェイスの実現に必要な条件
グラフィカルインターフェイスフォーム、グラフィカルインターフェイスパネル
2.インターフェースの形式
2.1グラフィカルインターフェイスフォームとは
図のように、黒い外枠はグラフィカルインターフェイスの形に似ています。グラフィカルインターフェイスを実現するには、形が不可欠です。外枠だけで十分かと聞かれる方もいらっしゃるかもしれませんが、もちろん不可能です。パネル、それ以外の場合は外枠のみがあり、内部には何もありません。グラフィカルインターフェイスはグラフィカルインターフェイスと呼ぶこともできます。
2.1Javaプログラムにグラフィカルインターフェイスフォームを実装する方法
Javaには、すべてを呼び出すことができる機能があることは 誰もが知っています
2.1.1Javaのフォームクラス
Javaのすべてのクラスの中には、グラフィカルインターフェイスフォームを実装できるクラスがあります。継承についてはすべて知っています。サブクラスは親クラスを継承し、親クラスによって宣言されたすべてのパブリックメソッドとプロパティを継承します。
JFrameクラスはJavaのフォームクラスです。ここで、JFrameを継承するクラスを宣言します。
2.1.2フォームクラスをカスタマイズする手順
1.JFrameから継承されたクラスを作成します
2.フォームのプロパティを初期化するための構築メソッドを記述します
2.1.3カスタムフォームクラスを実装する
例えば:
import javax.swing.JFrame;
//写一个类继承于 JFrame
public class Frame extends JFrame{
//构造方法
public Frame(){
//设置窗体的标题 来源于JFrame setTitle(标题);
setTitle("图形化界面");
//设置窗体的大小 setSize(宽度,高度);
setSize(512,726);
//设置窗体的位置 设置位置居中显示 setLocationRelativeTo(null);
setLocationRelativeTo(null);
//如果不想改变窗口的大小 setResizable(false);
setResizable(false);
//窗口关闭后所打开的程序并没有关闭,会大大影响运行内存,所以我们可以每次关闭的时候关闭程序
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//运行
public static void main(String args[]){
//创建Frame的对象
Frame frame = new Frame();
//显示窗口 true 是显示窗口,false 是隐藏窗口
frame.setVisible(true);
}
}
}
結果
3.グラフィカルインターフェイスパネル
3.1グラフィカルインターフェイスパネルとは
グラフィカルインターフェイスのパネルは、黒い外枠内の赤い部分です。グラフィカルインターフェイスを実現するためには、パネルも不可欠な部分です。フォームと同じくらい重要であり、不可欠です。
3.2Javaのパネルクラス
Javaのすべてのクラスの中には、グラフィカルインターフェイスパネルを実装できるクラスがあります。継承についてはすべて知っています。サブクラスは親クラスを継承し、親クラスによって宣言されたすべてのパブリックメソッドとプロパティを継承します。
JPanelクラスはJavaのフォームクラスです。JPanelを継承するクラスを宣言します。
3.3パネルをカスタマイズする手順
1.JPanelを継承するクラスを作成します
2.パネルのプロパティを初期化(決定)するための構築メソッドを作成します
3.4カスタムパネルクラスを実装する
背景色を追加する
import java.awt.Color;
import javax.swing.JPanel;
//创建一个类去继承Jpanel
public class Panel extends JPanel{
//构造方法
public Panel{
//设置背景的颜色
setBackground(Color.pink);
}
}
背景画像の追加背景画像の追加にはAPPクラスが必要です
import java.awt.image.BufferedImage;
public class App{
/**
BufferedImage Java 中用来表示图片类
@param path 图片的路径
*/
public static BufferedImage getImage(String path){
// Java 中的IO流,输送数据的管道
// 输入输出流
// App.class ,找到App类的路径(用到了反射的知识)
// getResource() 获取资源
try{
BufferedImage img = ImageIO.read(App.class.getResource(path));
//如果找到图片,就将图片返回
return img;
}catch(IOException e){
// catch 如果找不到图片,就会捕获找不到图片的原因
e.printStackTrace();
}
return null;
}
}
背景画像を追加する
import java.awt.Color;
import javax.swing.JPanel;
//创建一个类去继承Jpanel
public class Panel extends JPanel{
//1.定义背景图
BufferedImage bg;
//构造方法
public Panel{
//设置背景的颜色
setBackground(Color.pink);
//初始化图片
bg = App.getImage(图片在哪个路径 如:"/image/1.png");
//重写Paint 方法
@override
public void paint(Graphics g){
super.paint(g);
//调用 方法 g.drawImage(),确定图片的坐标, 如 g.drawImage(图片, 图片的横坐标,图片的纵坐标,图片的宽,图片的高,null);
g.drawImage(bg,0,0,512,726,null);
}
}
}
パネルを実現するには、フォームに追加します
import javax.swing.JFrame;
//写一个类继承于 JFrame
public class Frame extends JFrame{
//构造方法
public Frame(){
//设置窗体的标题 来源于JFrame setTitle(标题);
setTitle("图形化界面");
//设置窗体的大小 setSize(宽度,高度);
setSize(512,726);
//设置窗体的位置 设置位置居中显示 setLocationRelativeTo(null);
setLocationRelativeTo(null);
//如果不想改变窗口的大小 setResizable(false);
setResizable(false);
//窗口关闭后所打开的程序并没有关闭,会大大影响运行内存,所以我们可以每次关闭的时候关闭程序
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//运行
public static void main(String args[]){
//创建Frame的对象
Frame frame = new Frame();
//创建Panel 对象
Panel panel = new Panel();
//显示窗口 true 是显示窗口,false 是隐藏窗口
frame.setVisible(true);
//将面板添加到JPrame
frame.add(panel);
}
}
}
注:フォームとパネルは分離できません
結果
パネルの最適化については次回詳しく説明します!