3

一連のタスクを追跡する社内アプリに取り組んでいます。タスク名とタスクのステータスを一覧表示する単純なタスク モニターが必要でした。私はデザイナーではないので、何をしてもうまくいきませんが、基本的なテキスト表示はプロジェクトの要件に対して機能しません。

私が本質的にしようとしているのは、Firefox のダウンロード ウィンドウ、I-Tunes のダウンロード ウィンドウに似たものを表示することです。他にも名前を付けることができますが、それらはすべて基本的に同じように見えます。これらの各アプリでは、それぞれの「進行状況パネル」を選択できます。したがって、これを実装するには、それぞれが JProgressBar と JLabel を持つ JPanels のリストを使用するだけで簡単だと思いました。それぞれがフォーカスを受け入れて、それと他の人が選択されているかどうかを判断できます。これは簡単な作業だと思っていましたが、JList を使用するとテキストが表示されるだけです。次に、すべてのタスク パネルを大きなパネルに表示することを考えましたが、内側のパネルにフォーカスを認識させることができません。

これにはパターンがありますか?私が見つけられなかった標準的なソリューションはありますか? または、これを行うためのより良い方法はありますか? 車輪の再発明はしたくありませんが、これは単純なことだと思いました。

4

3 に答える 3

8

あなたが探しているのはJList.

JList最初に「タスク」をJListオブジェクトに追加することでアイテムを に追加できますListModel( Java チュートリアルの「モデルの作成ListCellRenderer」セクションを参照)。次に、「タスク」を受け入れるカスタムを割り当て、リスト自体のJListとしてレンダリングします。JPanelここで重要なのは、カスタムで「タスク」を に表示したい方法ListCellRendererで表示できるようにすることです。JListJList

The Java TutorialsのHow to Use Listsページから、Writing a Custom Cell Rendererセクションを参照してください。カスタムを作成して、「タスク」を好きなように表現できるようにする方法について説明します。ListCellRenderer

簡潔にするために、内のタスクの表現であるを返す をListCellRenderer実装することにより、インターフェイスを実装します。おそらく、このメソッドで your を構築またはインスタンス化し、それを として返したいと思うでしょう。getListCellRendererComponentComponentJListJPanelComponent

于 2008-12-18T15:38:59.387 に答える
1

このようなことを行う標準的な方法は、JTable (または JList) をコンテナーとして使用することです。

表のセルにデフォルトのレンダリングを使用する必要はありませんが、特定のセルに対して独自のレンダラーを指定できます。CellRendererを見てみましょう

于 2008-12-18T15:26:16.930 に答える
0

aと aを含む各行の単一セルを占めるJTable内部を持つ a (複数の行を選択できるように設定できます) はどうですか。または、先ほど説明したのと同じ構造でa を使用することもできます。JPanelJProgressBarJLabelJList

于 2008-12-18T15:24:54.890 に答える