ヘッダークリックでテーブル列を並べ替えますか?

Kevvvvyp

以下のコードは、この出力を生成します。

ここに画像の説明を入力してください

このコードを試してみると、vaadinは、ヘッダーをクリックすると、CARMAKE&TOPSPEEDで並べ替える方法を自動的に認識します。

PASSENGER&DRIVERは、ヘッダークリックではソートされません。

これどうやってするの?テーブルには、「PERSONタイプの何かを並べ替える方法がわからないので、そのヘッダーにクリックリスナーを追加しない」と書かれていますか?

私はbeamItemContainerを拡張し、sortメソッドをオーバーライドすることができました。次に、列を並べ替えるボタンをビューに追加できます。しかし、私はテーブルヘッダーをクリックできるようにしたいです!

TableHeaderClickListenersを追加できると思っていましたが、beanItemContainerの並べ替えをオーバーライドしたときに、vaadinがすでに追加していないのはなぜですか?CARMAKE&TOPSPEEDではすでにこれを行っています。

@Override
public void init(VaadinRequest request) {

    BeanItemContainer<SportsCar> beans = new BeanItemContainer<SportsCar>(SportsCar.class);

    Person tom = new Person("Tom");
    Person dick = new Person("Dick");
    Person harry = new Person("Harry");

    beans.addBean(new SportsCar("ferrari",180.0,tom,dick));
    beans.addBean(new SportsCar("Aston Martin",165.0,harry,null));

    Table t = new Table();
    t.setContainerDataSource(beans);
    t.setSizeFull();
    this.setContent(t);

}

public class SportsCar {
    String carMake;
    double topspeed;
    Person driver;
    Person Passenger;

    public SportsCar(String carMake, double topspeed, Person driver, Person passenger) {
        this.carMake = carMake;
        this.topspeed = topspeed;
        this.driver = driver;
        this.Passenger = passenger;
    }

    /**
     * Get the carMake.
     * 
     * @return the carMake.
     */
    public String getcarMake() {
        return carMake;
    }

    /**
     * Set the carMake.
     * 
     * @param carMake
     *            the carMake.
     */
    public void setcarMake(String carMake) {
        this.carMake = carMake;
    }

    /**
     * Get the topspeed.
     * 
     * @return the topspeed.
     */
    public double getTopspeed() {
        return topspeed;
    }

    /**
     * Set the topspeed.
     * 
     * @param topspeed
     *            the topspeed.
     */
    public void setTopspeed(double topspeed) {
        this.topspeed = topspeed;
    }

    /**
     * Get the driver.
     * 
     * @return the driver.
     */
    public Person getDriver() {
        return driver;
    }

    /**
     * Set the driver.
     * 
     * @param driver
     *            the driver.
     */
    public void setDriver(Person driver) {
        this.driver = driver;
    }

    /**
     * Get the passenger.
     * 
     * @return the passenger.
     */
    public Person getPassenger() {
        return Passenger;
    }

    /**
     * Set the passenger.
     * 
     * @param passenger
     *            the passenger.
     */
    public void setPassenger(Person passenger) {
        Passenger = passenger;
    }

}

public class Person {

    String carMake;

    /**
     * Create a Demo.Person.
     */
    public Person(String carMake) {
        this.carMake = carMake;
    }

    /**
     * Get the carMake.
     * 
     * @return the carMake.
     */
    public String getcarMake() {
        return carMake;
    }

    /**
     * Set the carMake.
     * 
     * @param carMake
     *            the carMake.
     */
    public void setcarMake(String carMake) {
        this.carMake = carMake;
    }

    @Override
    public String toString(){
        return carMake;
    }
}
ステフェン

Javaは、オブジェクト自体を比較する方法を知りません。まず、インタフェース "Comparable"を実装することにより、これらのオブジェクトを比較できることを指定する必要があります。次に、次のようにcompareToメソッドをオーバーライドする必要があります。

public int compareTo(Person p) {
    return getcarMake().compareTo(p.getcarMake());
}

これでうまくいくはずです(私はテストしませんでしたが)。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ヘッダーをクリックしてテーブルの列を昇順または降順で並べ替える方法

分類Dev

Datatablesテーブルヘッダースパンをクリックしたときの列の並べ替えを有効/無効にします

分類Dev

DataTables-データを並べ替えるテーブルヘッダーのテキストのみをクリックします

分類Dev

数値と文字列値を持つ列のテーブルヘッダーをクリックしてReactテーブルを並べ替える

分類Dev

AutoGenerated列とIEnumerableItemsSourceを含む列ヘッダーDataGridをクリックして行を並べ替えます

分類Dev

QML列のヘッダーをクリックするだけでtableViewを並べ替える方法

分類Dev

テーブルの並べ替えヘッダーに矢印クラスを追加するにはどうすればよいですか?

分類Dev

ヘッダー行を保持しながら、ClosedXMLでテーブルを並べ替えます

分類Dev

テーブルソーターの列の並べ替えが、テーブルヘッダーのチェックオールチェックボックスを上書きしています

分類Dev

上部ヘッダー行のみでテーブルを並べ替える方法

分類Dev

列のヘッダークリックから並べ替え機能を分離する正しい方法は何ですか?

分類Dev

オブジェクトの配列をフィールドで並べ替えてからアルファベット順に並べ替えます

分類Dev

テーブルヘッダーを上部に保持しながら、PowerShellで `dockerps`からの出力を並べ替えます

分類Dev

ユーザーが列をクリックしたときにテーブルを並べ替える

分類Dev

HTMLテーブルヘッダーのMySql行を並べ替える方法

分類Dev

JQueryテーブルの並べ替えの問題-列をスキップすると、最初のマウスクリックが無効になります

分類Dev

テーブルヘッダーの並べ替え画像を右に揃えるにはどうすればよいですか

分類Dev

見出しをクリックして並べ替え可能なテーブル

分類Dev

スタートメニューの並べ替え機能:このヘッダータイプは何ですか?(スクリーンショットを参照)

分類Dev

動的データを動的テーブルヘッダーの下に並べ替えて表示するにはどうすればよいですか?

分類Dev

Javaで2Dリストを列ヘッダーで並べ替える

分類Dev

linq文字列比較子を使用したヘッダークリックでのデータグリッドビューの並べ替え

分類Dev

MySQLは他のテーブルからの一致でクエリを並べ替えます

分類Dev

列タイトルのクリックで並べ替えを無効にし、jQueryデータテーブルの矢印のクリックを許可するにはどうすればよいですか?

分類Dev

SSRSマトリックスのグループとは異なる順序で列を並べ替えます

分類Dev

テーブルヘッダーもjadeのテーブルデータで並べ替えているのはなぜですか?

分類Dev

テーブルが並べ替えられた後、テーブルの列参照からクリックすると画像を動的にレンダリングする方法

分類Dev

ボタンクリックでvuetifyシンプルテーブルを並べ替える

分類Dev

MySQLテーブルを2列で並べ替えます

Related 関連記事

  1. 1

    ヘッダーをクリックしてテーブルの列を昇順または降順で並べ替える方法

  2. 2

    Datatablesテーブルヘッダースパンをクリックしたときの列の並べ替えを有効/無効にします

  3. 3

    DataTables-データを並べ替えるテーブルヘッダーのテキストのみをクリックします

  4. 4

    数値と文字列値を持つ列のテーブルヘッダーをクリックしてReactテーブルを並べ替える

  5. 5

    AutoGenerated列とIEnumerableItemsSourceを含む列ヘッダーDataGridをクリックして行を並べ替えます

  6. 6

    QML列のヘッダーをクリックするだけでtableViewを並べ替える方法

  7. 7

    テーブルの並べ替えヘッダーに矢印クラスを追加するにはどうすればよいですか?

  8. 8

    ヘッダー行を保持しながら、ClosedXMLでテーブルを並べ替えます

  9. 9

    テーブルソーターの列の並べ替えが、テーブルヘッダーのチェックオールチェックボックスを上書きしています

  10. 10

    上部ヘッダー行のみでテーブルを並べ替える方法

  11. 11

    列のヘッダークリックから並べ替え機能を分離する正しい方法は何ですか?

  12. 12

    オブジェクトの配列をフィールドで並べ替えてからアルファベット順に並べ替えます

  13. 13

    テーブルヘッダーを上部に保持しながら、PowerShellで `dockerps`からの出力を並べ替えます

  14. 14

    ユーザーが列をクリックしたときにテーブルを並べ替える

  15. 15

    HTMLテーブルヘッダーのMySql行を並べ替える方法

  16. 16

    JQueryテーブルの並べ替えの問題-列をスキップすると、最初のマウスクリックが無効になります

  17. 17

    テーブルヘッダーの並べ替え画像を右に揃えるにはどうすればよいですか

  18. 18

    見出しをクリックして並べ替え可能なテーブル

  19. 19

    スタートメニューの並べ替え機能:このヘッダータイプは何ですか?(スクリーンショットを参照)

  20. 20

    動的データを動的テーブルヘッダーの下に並べ替えて表示するにはどうすればよいですか?

  21. 21

    Javaで2Dリストを列ヘッダーで並べ替える

  22. 22

    linq文字列比較子を使用したヘッダークリックでのデータグリッドビューの並べ替え

  23. 23

    MySQLは他のテーブルからの一致でクエリを並べ替えます

  24. 24

    列タイトルのクリックで並べ替えを無効にし、jQueryデータテーブルの矢印のクリックを許可するにはどうすればよいですか?

  25. 25

    SSRSマトリックスのグループとは異なる順序で列を並べ替えます

  26. 26

    テーブルヘッダーもjadeのテーブルデータで並べ替えているのはなぜですか?

  27. 27

    テーブルが並べ替えられた後、テーブルの列参照からクリックすると画像を動的にレンダリングする方法

  28. 28

    ボタンクリックでvuetifyシンプルテーブルを並べ替える

  29. 29

    MySQLテーブルを2列で並べ替えます

ホットタグ

アーカイブ