Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaのJTableでレコードが存在しない場合に「No records available」テキストを表示する方法

JTableとは

JTableJComponentクラスのサブクラスであり、情報を複数の行(row)列(column)に分けて表示するテーブルを作成するために使用されます。JTable上で値を選択すると、TableModelEventが生成され、このイベントはTableModelListenerインターフェースを実装することで処理できます。

以下のプログラムでは、JTableに行データが存在しない場合に、「No records available」というテキストを表示する方法を紹介します。

実装例

ポイントは、空のデータ配列を持つJTableに対して、JLabelを直接追加し、setFillsViewportHeight(true)を呼び出してビューポート全体を埋めることです。これにより、レコードがない領域にもメッセージが表示されるようになります。

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

public class NoRecordTableTest extends JFrame {
    private JPanel panel;
    private JTable table;
    private JScrollPane scrollPane;

    public NoRecordTableTest() {
        panel = new JPanel();
        panel.setLayout(new BorderLayout());
        String columnNames[] = {"Column 1", "Column 2", "Column 3"};
        String dataValues[][] = {};
        table = new JTable(dataValues, columnNames);
        JLabel label = new JLabel("No records available");
        label.setSize(label.getPreferredSize());
        table.add(label);
        table.setFillsViewportHeight(true);
        scrollPane = new JScrollPane(table);
        panel.add(scrollPane, BorderLayout.CENTER);
        panel.add(new Label("No records available"), BorderLayout.SOUTH);
        add(panel);
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }

    public static void main(String args[]) {
        new NoRecordTableTest();
    }
}

コードの解説

  • 空のデータ配列String dataValues[][] = {}; により、行データが存在しない状態のテーブルを作成します。
  • JLabelの追加:テーブルコンポーネント自体に「No records available」というラベルを追加することで、空の領域にメッセージを表示できます。
  • setFillsViewportHeight(true):テーブルがビューポートの高さいっぱいに広がるため、レコードがない部分にもラベルが見えるようになります。
  • BorderLayoutの活用:下部(SOUTH)にも同じメッセージを配置し、ユーザーにデータがないことを明確に伝えています。

実行結果

このプログラムを実行すると、列ヘッダーのみが表示され、テーブルの中央付近には「No records available」のテキストが表示されます。ウィンドウ下部にも同様のメッセージが表示され、データが存在しないことが一目でわかります。

この手法は、検索結果が空の場合やデータベースから取得したレコードがゼロ件の場合など、ユーザーに状態を分かりやすく伝えたい場面で非常に有効です。

  1. Javaでログインフォームを作成する方法!Swingを使った実装例とサンプルコード

    JavaではSwingというGUIツールキットを利用することで、デスクトップアプリケーション向けのログインフォームを簡単に開発できます。この記事では、ユーザー名(User Name)とパスワード(Password)の2つのラベル、認証情報を入力するための2つのテキストフィールド、そしてSUBMIT(送信)ボタンを1つ備えたフォームを作成します。正しい認証情報が入力されると、フォーム上に「Hello admin」というメッセージが表示されます。 使用する主なコンポーネント JLabel:ラベルの表示に使用します。 JTextField:ユーザー名の入力欄です。 JPasswordField:

  2. Python Tkinter:テキストウィジェットでテーブル(表)を表示・編集する方法

    Tkinterは、Pythonに標準で付属しているGUIツールキットです。豊富なモジュールとクラスライブラリが用意されており、開発者はユーザーフレンドリーなデスクトップアプリケーションを素早く簡単に構築できます。TkinterのTextウィジェットは、複数行のテキスト入力を受け付けるテキストエディタを作成するためのウィジェットです。プロパティや属性を自由に設定・カスタマイズできます。ここでは、Textウィジェットだけを使って2次元データを表形式(テーブル)で表示する方法を紹介します。Textウィジェット内にテーブルを作成するには、まず表示したいデータを格納した2次元配列(リスト)を用意します。