Объединение FlowLayout / GridLayout? - PullRequest
0 голосов
/ 30 октября 2011

Хорошо, я пытаюсь создать программу, которая берет System.in со сканера, помещает ввод в строку, а затем создает макет кнопки на основе ввода. Я довольно новичок в Java и немного самоучка, поэтому, если это выглядит странно, то это потому, что я не профессионал:

else if(wordReader.endsWith("\r")){

//Create grid layout (one below other)
GridLayout buttonReturn = new GridLayout(0,i);
contentPane.setLayout(buttonReturn);
System.out.println("This has a new line value");
i++;

    wordReader.replaceAll("\r","");
    buttonVal = new JButton (wordReader);
    buttonVal.addActionListener(new ButtonListener());
    buttonVal.setEnabled(true);

    contentPane.add(buttonVal, BorderLayout.NORTH);
Border emptyBorder = BorderFactory.createEmptyBorder();
buttonVal.setBorder(emptyBorder);
}

else {

    //Create button layout(side by side)
    FlowLayout buttonLayout = new FlowLayout();
    contentPane.setLayout(buttonLayout);
    contentPane.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);

    buttonVal = new JButton (wordReader);
    buttonVal.addActionListener(new ButtonListener());
    buttonVal.setEnabled(true);
    contentPane.add(buttonVal, BorderLayout.NORTH);
    Border emptyBorder = BorderFactory.createEmptyBorder();
    buttonVal.setBorder(emptyBorder);
}

Мои вопросы: Я хочу создать кнопку для каждого слова, но отображать эти кнопки в формате, аналогичном формату бумаги. То есть, когда человек нажимает кнопку возврата каретки, я больше не хочу FlowLayout (рядом), но теперь хочу переместить следующую кнопку с возвратом каретки ниже предыдущих кнопок. Это возможно? Я пытался перейти от FlowLayout к GridLayout, чтобы переместить следующую кнопку ниже, но из чтения я даже не уверен, что это возможно. Есть ли способ сделать это?

Есть ли способ обнаружить кнопку возврата каретки, не выполняя ее в консоли, сейчас у меня они вводят \ r в качестве возврата каретки на своем входе вместо нажатия клавиши ввода?

Я просмотрел многочисленные инструкции, статьи, форумы и посты вопросов и ответов (в том числе на этом сайте), но, похоже, не могу найти ничего, что позволило бы мне делать то, что я хочу делать. Позже я буду делать это, чтобы читать из файла вместо System.in, так что, если это будет легче объяснить, не стесняйтесь примерить это :) Опять же, я довольно новичок в этом, и у меня мало формального обучения, поэтому тупой вниз жаргон был бы оценен. Большое спасибо всем.

1 Ответ

2 голосов
/ 30 октября 2011

Вы можете посмотреть на JTextPane, который поддерживает встроенные компоненты.Вместо буквального flow или grid layout StyledDocument поддерживает концептуальный document layout.Примеры можно найти в Как использовать панели редактора и текстовые панели .Дополнительные примеры можно найти здесь .

...