CheckBox + JRadioButton

Status
Nicht offen für weitere Antworten.

PollerJava

Top Contributor
Hallo nochmal,


Ich habe ein JList, in der einige Zeilen enthalten sind mit jeweil einer ChekcBox und einem Text (Code unten),

Ich möchte jetzt die Zeilen in der ListBox so habe: 1. CheckBox, 2. JRadioButton, 3. Text,

Wie kann ich es realisieren, dass ich die JRadioButtons zwischen CheckBox und Text hineinbekomme?

lg

Code:
CheckBoxItem[] cbi = buildCheckBoxItems(listNamen[x].size());
            JRadioButton[] rb = buildRadioButtonItems(listNamen[x].size());
            listCheckBox[x] = new JankList(cbi, x);
            listRadioButton[x] = new JList(rb);   // das sind die RadioButtons
            listDescription[x] = new JList(listNamen[x].toArray());
            listDescription[x].setPreferredSize(new Dimension(100, 200));
            listDescription[x].setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
            
            listCheckBox[x].setCellRenderer(new CheckBoxRenderer());
            listCheckBox[x].setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
            listCheckBox[x].addMouseListener(this);
            
            scrollPane[x] = new JScrollPane();
            scrollPane[x].setPreferredSize(new Dimension(150,1000));
            scrollPane[x].setRowHeaderView(listCheckBox[x]);
            scrollPane[x].setViewportView(listDescription[x]); 
            scrollPane[x].setViewportView(listRadioButton[x]);
 

André Uhres

Top Contributor
PollerJava hat gesagt.:
..Wie kann ich es realisieren, dass ich die JRadioButtons zwischen CheckBox und Text hineinbekomme?
Versuch mal die JRadioButtons auch im RowHeader einzufügen.
Code:
/*
 * RowHeaderDemo.java
 */
package list;
import java.awt.*;
import javax.swing.*;
public class RowHeaderDemo extends JFrame {
    private JList list;
    private JScrollPane scrollPane;
    public RowHeaderDemo() {
        super("Row Header Demo");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setSize(400,300);
        setLocationRelativeTo(null);
        scrollPane = new JScrollPane();
        list = new JList();
        list.setFixedCellHeight((new JCheckBox()).getPreferredSize().height);
        list.setModel(new AbstractListModel() {
            String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
            public int getSize() { return strings.length; }
            public Object getElementAt(final int i) { return strings[i]; }
        });
        JPanel rowHeader = new JPanel(new FlowLayout(FlowLayout.CENTER,0,0));
        rowHeader.setPreferredSize(new Dimension(60, list.getPreferredScrollableViewportSize().height));
        for (int i = 0; i < 5; i++) {
            rowHeader.add(new JCheckBox());
            rowHeader.add(new JRadioButton());
        }
        scrollPane.setRowHeaderView(rowHeader);
        scrollPane.setViewportView(list);
        getContentPane().add(scrollPane, BorderLayout.CENTER);
    }
    public static void main(final String args[]) {new RowHeaderDemo().setVisible(true);}
}
 

PollerJava

Top Contributor
Danke Andre für den Tipp, werds vielleicht bei einer revision probieren, da ich momentan ziemlich unter Strom stehe, Hab jetzt mal nur den Hintergrund der CheckBox mit verschiedenen Farben einfärbt,
Die JRadioButtons hätte ich nämlich inaktiv geschaltet und in den jeweiligen Farben angezeigt, da das Design vom Kunden so gewünscht wird!!

Vielen Dank!!

lg
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben