JCheckbox mit mehreren Zeilen

Hallo,

für ein kleines Spiel, was ich betreue, würde ich gerne eine JCheckbox mit mehreren Zeilen Text haben.
Mein Vorgehen ist bisher das, dass ich je nach Antwortsmöglichkeiten ein GridLayout einrichte und eine leere JCheckbox und eine JTextArea mit dem Text daneben anlege. Das funktioniert auch soweit.Das Problem ist, wenn wenig Text dort steht, der Text halt „verschoben“ zu der Checkbox ist, weil die Textbox ja immer oben anfängt.

Nun meine Frage: Kann ich das irgendwie bei der JTextArea beeinflussen,… meine Google Ergebnisse, sind bisher sehr mau, was das angeht

ps. mir würden auch Links reichen, danke :slight_smile:

Hier mal ein KSKB um das Problem nachzustellen :slight_smile:

	
	private static final String TEXT = "das ist ein langer langer langer langer langer text";
	private static final int ANZAHL = 3;
	
	public static void main(String[] args) {
		new MyFrame();
	}
	
	public MyFrame(){
		JFrame frame = new JFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(500, 500);
		frame.add(createPanel());
		frame.setVisible(true);	
	}


	private Component createPanel() {
		JPanel panel = new JPanel();
		panel.setLayout(new GridLayout(ANZAHL,2));
		for(int i = 0 ; i < ANZAHL;i++){
			panel.add(new JCheckBox());
			JTextArea area = new JTextArea(TEXT);
			area.setWrapStyleWord(true);
			area.setLineWrap(true);
			area.setEditable(false);
			panel.add(area);
		}
		return panel;
	}
}```

Tut’s nicht HTML?

import java.awt.*;
import javax.swing.*;


    public class MyFrame {

        private static final String TEXT = "das ist ein langer langer langer langer langer text";
        private static final int ANZAHL = 3;

        public static void main(String[] args) {
            new MyFrame();
        }

        public MyFrame(){
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(500, 500);
            frame.add(createPanel());
            frame.setVisible(true);
        }


        private Component createPanel() {
            JPanel panel = new JPanel();
            panel.setLayout(new GridLayout(ANZAHL,1));
            for(int i = 0 ; i < ANZAHL;i++){
                String s = "<html>"+TEXT+"</html>";
                panel.add(new JCheckBox(s));
            }
            return panel;
        }
    }

?

vielleicht ist dass jetzt der Zeitpunkt sich mal mit dem MVC Pattern zu beschäftigen. Dann lasst sich das recht einfach mit einer JList, dem passenden Model und einem ListCellRenderer umsetzen…

bye
TT

okay danke erst einmal für eure Antworten :slight_smile:
@marco : okay, das war zu einfach :smiley: mm scheint zu funktionieren danke :slight_smile:

@TT: naja ich dachte eher daran, dass man das mit der JTextArea irgendwie einstellen kann,… aber nun brauch ich die ja auch nicht mehr und es klappt allein mit der Combox.

allgemein war das nur ein kleines KSKB um einfach nur das Problem zu verdeutlichen und was ich genau erreichen will. In Wirklichkeit sieht das noch nen bisschen anders aus. :slight_smile: