Java Basic Swing Level 2〜オブジェクト指向2〜

イントロダクション

前回は、ちょこっとだけSwingの概要に触れました。

そして、コードは書いていないのでちょっと物足りない感じがしました。

今回はコード+文章で行きます。

Introduction

Last time. I wrote about Swing. But it is little bit Swing(笑).

So why I will write a Swing with Java Code and Statement.

Let's enjoy Java with me.

Swingの基本構成

前回記載した様に土台がありその上にコンポーネントを配置します。

JFrame, JDialog..etc -> 土台

Jlabel, JPanel, JTextField...etc->コンポーネント

// 土台クラス
JFrame frame = new JFrame("FirstSwing");
// 土台のコンポーネントを載せる部分(位置などは後で指定する)
// コンテナーと呼びます
Container con = frame.getContentPane();
//コンテナの大記載をしています
con.setSize(300, 300);
// コンテナの上にラベルを配置します
con.add(new JLabel("Hello Swing"));
// 土台の上に乗せたものをおきます
frame.setContentPane(con);
// お約束ごとで閉じる時にこのクラスの起動を終了する設定など。。。
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
// 画面を表示する設定→これをFALSEにすると画面が非表示になる
frame.setVisible(true);

ソースはここからダウンロードできます。

About Swing Structure

Last time I wrote. Swing has base and we put on a component on this base.

JFrame -> base

Jlabel, JPanel, JTextField...etc-> Component

 // Class of Base
JFrame frame = new JFrame("FirstSwing");
// A part of putting component(set after position etc...)
// container for put on components.
Container con = frame.getContentPane();
//set size to container
con.setSize(300, 300);
// put on Label on this container
con.add(new JLabel("Hello Swing"));
// set on container on frame class
frame.setContentPane(con);
// basically setting for JFrame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
// set visible(true) -> view a JFrmae
frame.setVisible(true);

you can down load this java all source code from GIT.


関連ページ一覧

<インターフェース>

<クラス>

<サイトマップ>

Java Basic Swing〜オブジェクト指向〜

イントロダクション

java.swingパッケージを使用した。画面作成をやります。

このパッケージ(Swingフレームワーク)はクラス→画面コンポーネント(ラベルや、テキストフィールドなど)になるのでクラス・オブジェクトの扱いを理解するのに持ってこいです。

Introduction

I will create a view using “java.swing” package

This package(frame work) has  classes indicate to view components. I mean swing is good to study inheritance i think....

Swingについて

画面作成用のフレームワークで、どこに何のクラスを使用するか?が決まっています。

Swing is java frame work to make view. And defind components to use part of view.

詳細はドキュメント(英語)を見てください。

Watchch this. if you want to know sight.

https://docs.oracle.com/javase/tutorial/uiswing/components/index.html

 Swingの部品構成

画面を作る時は以下の順で画面コンポーネント(部品(ボタンなど))を置いていくイメージです。

Swing components based on “JFrame” or “JDialog” I think ... And put on components one.

<イメージ>

画面の1番下に土台を置きます。(JFrame, JDialo, JAppl

そして、土台の上にはボタンやラベルなどを置きます。これらの部品は土台になる部品とは親クラスが違います。※土台になる部品とボタンなどの部品は別物だと思ってくれればOK

実際の実装は今後やります。

I will write a ample code next blog...

サンプル(sample)

// フレーム(土台)
JFrame frame = new JFrame(“土台”);

// 部品を乗せるスペース
Container con = frame.getContentPain();


関連ページ一覧

<インターフェース>

Java Basic インターフェース・抽象クラスの作り方

<クラス>

Java Basic クラスとは〜Step2_1〜

<サイトマップ>

Mapping of Java Bassic etc …~Java Basicなど記事一覧~

Java Basic Swing 〜ラズパイの画面作成 〜

イントロダクション

前回は、JavaFXでの画面を作成しようと試みましたが、XWindowを使用するという時点でイマイチ。。。ということになり(自分の中で)

java.swingで実装してみようとなりました。

試みとしては、「CUIでのインストールしたRPiに画面をJavaで作成する」というのが今回の目的です。。。一応、これもダメだったらC++で作成します。

予定を変更してNo画面アプリを作成する方向にシフトします。

ちなみにC++でやるときはQtを使用します。※ java.swing.*で出来ない時です。。。

そして、java.swingでの実装はオブジェクト指向の良い勉強になります。→別の機会にやります。

自分はオブジェクト指向の基本をこのパッケージ(java.swing)で理解しました。

Introduction

I had tried create view on RPi using JavaFX. But it not can be, cause we have to execute GUI mode. That's why change plan to create app of no view.

And, studing java.swing.* is good for study java and object-orientation.

I understood object-orientation becouse studied java.swing.*.

サンプル実装

本当に簡単ですが、サンプルコードです。

This is a simple sample of swing program.

package jp.zenryoku.sample.swing;

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

public class PracSwingMain extends JFrame {
    public static void main(String[] args) {
        JFrame frame = new JFrame("FirstSwing");
        Container con = frame.getContentPane();
        con.setSize(300, 300);
        con.add(new JLabel("Hello Swing"));
        frame.setContentPane(con);
        frame.pack();
        frame.setVisible(true);


    }
}

実行結果とソースのキャプチャです。※右上の「Hello Swing」という部分がSwingで作成した画面です。

昔のSWINGとは違っている様なので、復習が必要です。。。

Java Swingで動かしてみました(Execute Swing Program)

ダメでした。。。Swingでの実装も以下の様なエラーが出ます。

Rpi3では起動した様なのですが。。。自分のはRpi2。。。

CUI上でGUIアプリは起動できないのか?ちょいと調査します。→ No画面アプリ作成にシフトします。→フレームバッファを調査します。

But I can not see java view. out error as below.

java.awt.HeadlessException: 
No X11 DISPLAY variable was set,
but this program performed an operation which requires it.

Cause of this Exception, it is need setting "Frame Buffer". I think....I will investigate one.

その後(after)

結局は、ラズパイにXFCE4を入れて Swingを起動する方向になりました。

As result... I will try to install XFCE4 on RPi and execute Swing.

RPi Java Swing〜ラズパイにJava Swingアプリを起動する〜

関連ページ一覧

  1. ラズパイ SSH接続メモ
  2.  ラズパイ Under-voltage detected! 〜エラー対処〜
  3.  ラズパイ(CUI)セットアップ
  4.  RPi Settingup Wifi in CUI ~ラズパイ CUI Wifi接続~
  5. Memos about Settingup RPi ~使用したコマンドメモ~
  6. RPi and JavaFX sample of deployment 〜ラズパイにサンプルデプロイ〜
  7.  RPi JavaFX execution ~ラズパイ JavaFX自動起動~
  8. RPi Install Git 〜ラズパイにGitのインストール〜
  9. RPi Java Swing〜ラズパイにJava Swingアプリを起動する〜※失敗しています。。。」
  10. RPi Maven Install 〜ラズパイでMeven
  11. Install XFCE4 on RPi 〜ラズパイに高速軽量デスクトップインストール〜