質問

私はJTableの内部JScrollPaneを持っています。私は、テーブルの列の1のためのカスタムセルエディタを作成しています、と私は、このエディタがスクロールJListをポップアップ表示します。私はPopupを含む新しいJScrollPaneを表示するJListを使用してこれをやった。

すべてがPopupの位置を除いて、取り組んでいます。編集者のための私のカスタムコンポーネントは次のように、基本的に見えます:

public class CustomPanel extends JPanel {
    JTextField text = new JTextField();
    JList list = new JList();
    JScrollPane scroll = new JScrollPane(list);
    Component owner = null;
    public CustomPanel(Component owner) {
        this.owner = owner;
        add(text);
    }
    public void showPopup() {
        Popup p = PopupFactory.getPopup(owner, scroll, getX(), getY()+getHeight());
        p.show();
    }
}

何が起こっていることgetX()getY()が保持JScrollPaneのに表のセルの位置を復帰され、そしてPopup絶対画面位置を望むことです。私は、彼らがに関連しているowner JScrollPaneに渡したとしても、それは動作しません。私はtext.getX() / text.getY()を使用する場合、私は同じ問題を取得します。

どのように私は直接Popup以下の私TextBoxを配置することができますか?

ただ、もう少し背景:最終目標は、カンマで区切ったリストで選択した項目がすべて表示され、複数の選択コンボボックスです。このような何か他のものがすでに存在する場合、それに私を指すことを躊躇しないでください。

編集:スクロールペインはどこにでもあるが、すべての道を上にスクロールしたときにowner.getLocationOnScreen().y + getY()が動作しません。しかし、単なるgetLocationOnScreen().yは、作業を行います。問題の解決、ありがとうございます。

役に立ちましたか?

解決

あなたは<のhref = "http://java.sun.com/javase/6/docs/api/java/awt/Component.html#getLocationOnScreen()" のrel = "nofollowを絶対画面位置を照会することができますnoreferrer "> Component.getLocationOnScreen() の。あなたが探しているものということですか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top