私のJListセルのwidth属性を無効、JListのはJTextPaneのがカスタムで返されるセルレンダラーで、独自のセルレンダリングを持っていますサイズ。カスタムサイズの結果、このテキスト枠の行が折り返されます。JScrollPaneのは私だけ<strong>JListの</strong>で構成されてい<strong>JFrameの</strong>を持って
textPane.setSize(WIDTH, HEIGHT);
今、私はこれをJListをスクロール可能にしたいので、私はJScrollPaneのコンポーネントにそれをラップし、これは、しかし、私は、セルレンダラーで定義した幅の制約を無効になります。 JScrollPaneの幅の制約を強制する最良の方法は何でしょうか?
setSize(FRAME_WIDTH, FRAME_HEIGHT);
setLayout(new BorderLayout());
DefaultListModel<Status> listModel = new DefaultListModel<Status>();
JList<Status> list = new JList<>(listModel);
list.setLayout(new BorderLayout());
list.setSize(FRAME_WIDTH, FRAME_HEIGHT);
list.setCellRenderer(new MyCellRenderer());
// wrap the list with a JScrollPane
add(new JScrollPane(list), BorderLayout.CENTER);
のsetSizeは意味をなさない(および任意の効果を持っていない)サイズおよび構成要素の配置することのLayoutManagerの_exclusive_ジョブです。代わりに、レンダリングコンポーネントに適切なpreferredSize(リストのprefを決定する)を返します。 – kleopatra