目次
1. Java Swingコンポーネント間の継承関係
2.Jフレーム
JFrame はコンテナであり、各コンポーネントのキャリアです。
1. 新しい JFrame オブジェクトを作成します
JFrame jframe = new JFrame(); //创建没有标题的窗口
JFrame jframe = new JFrame(String s); //创建标题为 s 的窗口
//JFrame类的setTitle(String s)方法也可设置标题
2. JFrame フォームのサイズを設定します
Frame.setLocationRelativeTo(null); ウィンドウを中央に設定できます
//通过JFrame的对象名调用以下方法实现对应功能
public void setSize(int width,int height){} //设置窗口的大小(单位为px)
public void setLocation(int x,int y){} //设置窗口的位置,默认位置是(0,0)
public void setBounds(int a,int b,int width,int height){} //设置窗口的初始位置是(a,b),窗口的宽是width,高是height
public void setVisible(boolean b){} //设置窗口是否可见,默认是false不可见的
public void setResizable(boolean b){} //设置窗口是否可被用户调整大小,默认是ture可调整
public void dispose(){} //撤销当前窗口,并释放当前窗口的所使用的资源
public void setExtentedState(int state){} //设置窗口的扩展状态
/**
* 其中state参数取JFrame类中下列类常量
* MAXIMIZED_HORIZ
* MAXIMIZED_VERT
* MAXIMIZED_BOTH
*/
3. JFrameの終了方法を設定する
public void setDefaultCloseOperation(int operation) //该方法用来设置单击窗体右上角的关闭图标后,程序会作出怎样的处理,其中operation参数取JFrame类中的下列int型static常量,程序会根据参数operation的取值作出不同的处理
/**
* DO_NOTHING_ON_CLOSE(什么也不做)
* HIDE_ON_CLOSE(隐藏当前窗口)
* DISPOSE_ON_CLOSE(隐藏当前窗口,并释放窗口所占有的其他资源)
* EXIT_ON_CLOSE(结束窗口所在的应用程序)
/
3.Jダイアログ
java.awt.Dialog クラスから継承されます。一つの形から飛び出た別の形です。JFrame に似ており、次のものが必要です。
getContentPane を呼び出してフォームをコンテナに変換し、フォームのコンテンツをコンテナに設定します。
JDialog: JFrame として使用できますが、JFrame に従属する必要があります。JFrame クラスのメソッドは JDialog にもあります
はい、唯一の違いは、JDialog の終了メソッドに EXIT_ON_CLOSE がないことです。同時に、JDialog は JFrame に従属するため、
したがって、JFrame ウィンドウが閉じられると、JDialog も閉じられ、その逆も影響を受けません。
コンストラクタ
JDialog jdialog = new JDialog();
JDialog jdialog = new JDialog(Frame f); //指定父窗口
JDialog jdialog = new JDialog(Frame f,String title); //指定父窗口+标题
4. よく使われるパネル
パネルはスイング コンテナでもあり、他のコンポーネントを追加または収容するためのコンテナとして使用できますが、
容器内。
1、JPパネル
JPanel は java.awt.Container クラスを継承する最も単純なパネルです。
JFrame jframe = new JFrame("标题");
jframe.setBounds(400,300,1200,1200);
jframe.setVisible(true);
JButton jb = new JButton("按钮"); //new两个按钮组件
JButton jb1 = new JButton("按钮1");
JPanel jp = new JPanel(new FlowLayout()); //生成一个面板
jp.add(jb); //将两个按钮加入到面板中
jp.add(jb1);
jframe.add(jp); //将面板加入到另外的容器中
2、JScrollPane
JScrollPane はスクロール バーを備えたパネルです。したがって、大きなコンポーネントを小さなスペースに配置する必要がある場合は、このパネルを使用してください。JScrollPane に追加できるコンポーネントは 1 つだけであるため、JScrollPane に複数のコンポーネントを追加する必要がある場合は、追加するコンポーネントを最初に JPanel に追加してから、JPanel を JScrollPane に追加する必要があります。
JFrame jframe = new JFrame("标题");
jframe.setBounds(400,300,1200,1200);
jframe.setVisible(true);
JButton jb = new JButton("按钮");
jb.setSize(800,200); //设置按钮组件的尺寸
JScrollPane jp = new JScrollPane(jb); //把按钮组件放在JScrollPane中
jframe.add(jp);
5. 一般的に使用されるコンポーネント
1. JLabel ラベルコンポーネント
テキストまたはプロンプト情報を表示する
施工方法
JLabel jlabel = new JLabel();
JLabel jlabel = new JLabel(String str); //设置文本
JLabel jlabel = new JLabel(Icon icon); //设置图标
JLabel jlabel = new JLabel(String str,int aligment); //设置文本+水平对齐方式(LEFT、CENTER、RIGHT)
JLabel jlabel = new JLabel(String str,Icon icon,int aligment); //设置文本+图标+水平对齐方式
JFrame jf = new JFrame("标题");
jf.setBounds(400,300,1000,1000);
JLabel jl = new JLabel();
jl.setText("账号:");
jl.setFont(new Font("宋体",Font.PLAIN,30)); //设置标签的字体,尺寸等
jf.add(jl);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
2. JButtonボタンコンポーネント
施工方法
JButton jb = new JButton();
JButton jb = new JButton(String text); //指定文字
JButton jb = new JButton(Icon icon); //指定图标
JButton jb = new JButton(String text,Icon icon); //指定文字+图标
その他の方法
setEnabled(boolean n); //设置按钮是否可用
setBorderPainted(boolean n); //设置边界是否显示,默认是显示的
(1) ラジオボタンコンポーネント
JRadioButton はラジオ ボタンであり、このラジオ ボタンを ButtonGroup ボタン グループに追加する必要があります。
施工方法
JRadioButton jrb = new JRadioButton();
JRadioButton jrb = new JRadioButton(String text); //指定文字
JRadioButton jrb = new JRadioButton(String text,boolean selected); //指定文字+是否选中
例
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JRadioButton jrb = new JRadioButton("男");
JRadioButton jrb1 = new JRadioButton("女");
ButtonGroup bg = new ButtonGroup();
bg.add(jrb);
bg.add(jrb1);
jf.add(jrb);
jf.add(jrb1);
(2) コンポーネントボックスにチェックを入れます
Jチェックボックス
施工方法
JCheckBox jb = new JCheckBox();
JCheckBox jb = new JCheckBox(String text,boolean checked); //指定文字+是否被选中
例
JFrame jf = new JFrame("标题");
jf.setBounds(400,300,1000,1000);
JCheckBox jcb1 = new JCheckBox("篮球");
JCheckBox jcb1 = new JCheckBox("游戏");
JCheckBox jcb1 = new JCheckBox("睡觉");
JCheckBox jcb1 = new JCheckBox("学习");
jf.add(jcb1);
jf.add(jcb2);
jf.add(jcb3);
jf.add(jcb4);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
(3) ドロップダウンリストボックスコンポーネント
施工方法
JComboBox jb = new JComboBox();
//addItem添加下拉内容
例
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JComboBox box = new JComboBox();
box.addItem("--请选择你的学历--");
box.addItem("高中");
box.addItem("大学");
box.addItem("研究生");
jf.add(box);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
3. メニューバー
(1) メニューバーの作成:JMenuBar
(2) メニュー作成:JMenu
(3) メニュー項目の作成:JMenuItem
//菜单项依附于菜单,菜单依附于菜单栏
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JMenuBar bar = new JMenuBar();
JMenu menu = new JMenu("菜单1");
JMenuItem item1 = new JMenuItem("菜单项1");
JMenuItem item2 = new JMenuItem("菜单项2");
JMenuItem item3 = new JMenuItem("菜单项3");
menu.add(item1);
menu.add(item2);
menu.add(item3);
bar.add(menu);
jf.add(bar);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
4. テキストコンポーネント
コンストラクタ
JTextField text = new JTextField();
JTextField text = new JTextField(String text); //指定默认文字
JTextField text = new JTextField(int fieldWidth); //指定文本框长度
JTextField text = new JTextField(String text,int fieldWidth); //指定默认文字+文本框长度
例
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JLabel label = new JLabel("账号");
JTextField text = new JTextField("请输入",20);
jf.add(lable);
jf.add(text);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
5. パスワードボックスコンポーネント
コンストラクタ
JPasswordField pwd = new JPasswordField();
JPasswordField pwd = new JPasswordField(String str); //指定默认文字
JPasswordField pwd = new JPasswordField(int fiedWidth); //指定文本框长度
JPasswordField pwd = new JPasswordField(String str,int fiedWidth); //指定默认文字+文本框长度
例
//setEchoChar('*') 显示回显字符,默认·
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JLabel label = new JLabel("密码:");
JPasswordField text = new JPasswordField("请输入密码",20);
jf.add(lable);
jf.add(text);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
6. テキストフィールドコンポーネント
コンストラクタ
JTextArea area = new JTextArea();
JTextArea area = new JTextArea(String text); //指定默认文字
JTextArea area = new JTextArea(int rows,int cols); //指定行+列
例
//setLineWrap(boolean x); 设置文本域是否自动换行
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JTextArea area = new JTextArea(12,20);
jf.add(area);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
6. よく使われるレイアウト
1.フローレイアウト
すべてのコンポーネントはストリームのように 1 つずつ排出されます。行がいっぱいになると、次の行がキューに入れられます。デフォルトでは、各コンポーネントは
中央に配置されていますが、設置することも可能です。
コンストラクタ
FlowLayout fl = new FlowLayout();
FlowLayout fl = new FlowLayout(int aligment); //设置对齐方式(默认FlowLayout.CENTER居中)
/**
* aligment取值:
* FlowLayout.LEFT = 0
* FlowLayout.CENTER = 1
* FlowLayout.RIGHT = 2
*/
例
//一般都通过setLayout方法来设置布局,例如jf.setLayout(new FlowLayout(FlowLayout.LEFT));
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JButton jb = new JButton("A");
JButton jb1 = new JButton("B");
jf.add(jb);
jf.add(jb1);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
2. ボーダーレイアウトBorderLayout
デフォルトのレイアウト管理方法はボーダー レイアウトです。ボーダー レイアウトはコンテナを北 (BorderLayout.NORTH) と南に分割します。
(BorderLayout.SORTH)、東 (BorderLayout.EAST)、西 (BorderLayout.WAST)、中央
(BorderLayout.CENTER) 5 つの領域。
例
//再给JFrame容器add组件的时候,指定边界
JFrame jf = new JFrame("标题");
jf.setLayout(new BorderLayout());
jf.setBounds(400,300,1000,1000);
JButton jb = new JButton("中部");
JButton jb1 = new JButton("西部");
jf.add(jb,BorderLayout.CENTER);
jf.add(jb1,BorderLayout.WEST);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
3. グリッドレイアウト
グリッド レイアウトでは、コンテナーがグリッドに分割されます。すべてのコンポーネントは行と列に配置され、グリッドの数は行と列の数によって決まります。
確かに。各コンポーネントがスペースを埋めてコンテナのサイズを変更し、それに応じてコンポーネントのサイズも変更されます。
施工方法
GridLayout gl = new GridLayout(int rows,int columns); //指定行数+列数
GridLayout gl = new GridLayout(int rows,int columns,int horizGap,int vertGap) //指定行数+列数+水平间隔+垂直间隔
例
JFrame jf = new JFrame("标题");
jf.setLayout(new GridLayout(2,2));
jf.setBounds(400,300,1000,1000);
JButton jb = new JButton("A");
JButton jb1 = new JButton("B");
JButton jb2 = new JButton("C");
JButton jb3 = new JButton("D");
jf.add(jb);
jf.add(jb1);
jf.add(jb2);
jf.add(jb3);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
7. 一般的に使用されるイベント リスナー
イベント | リスニングインターフェース | 方法 | |
アクションイベントリスナー | アクションイベント | アクションリスナー | addActionListener(); 削除アクションリスナー(); |
フォーカスイベントリスナー | フォーカスイベント | フォーカスリスナー | addFocusListener(); RemoveFocusListener(); |
使用手順
(1) 新規コンポーネント(ボタンなど)を作成する
(2) コンポーネントを対応するコンテナ(JFrameなど)に追加します。
(3) イベントソースによって生成されたイベントをリッスンするリスナーを登録します (ユーザーのボタンクリックに応答するために ActionListener を使用するなど)
(4) イベントを処理するメソッドを定義する(ActionListenerのactionPerformedに対応するメソッドを定義するなど)
例
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JButton jb = new JButton("A");
jb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
此处重写方法,要让此按钮做什么
}
});
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
8.Jテーブル
JTable はテーブルコンポーネントであり、テーブルのタイトルとテーブルの内容の 2 つの部分として考える必要がありますが、これら 2 つの部分の実際の操作は
は DefaultTableModel オブジェクトであり、操作が完了した後、JTable オブジェクトを JPanel または JScrollPane パネルなどに配置する必要があります。
コンテナなので、それらの階層関係は次のようになります。
JScrollPane
Jテーブル
デフォルトテーブルモデル