Я пытаюсь написать очень ограниченный текстовый редактор с Java, чтобы облегчить набор печати для проекта, который использует наш алфавит несколько неортодоксальным способом. Предполагается, что этот редактор фильтровал пользовательские входы с помощью KeyListner, убедившись (среди прочего), что пробелы, напечатанные перед словами, все еще будут отображаться даже после разбивающихся линейных. Но, к сожалению, JTextPane, который я использую для отображения текста, не реагирует на мои пространства с нулевой шириной, вместо этого не делая линейных разбил.import javax.swing.JFrame;
import java.awt.Toolkit;
import javax.swing.JLayeredPane;
import javax.swing.SpringLayout;
import javax.swing.JTextPane;
import javax.swing.JLabel;
import java.awt.Font;
import java.awt.Color;
class MainClass
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setContentPane(new OwlishTypingView("Palatino", 36, 24));
frame.setSize(Toolkit.getDefaultToolkit().getScreenSize());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class OwlishTypingView extends JLayeredPane
{
SpringLayout layout = new SpringLayout();
JTextPane textPane = new JTextPane();
JLabel syllableBuilder = new JLabel();
OwlishTypingView(String typeface, int mainSize, int helperSize)
{
setBackground(Color.WHITE);
setOpaque(true);
setLayout(layout);
syllableBuilder.setFont(new Font(typeface, Font.BOLD, helperSize));
syllableBuilder.setForeground(Color.GRAY);
syllableBuilder.setText(" 1 2 3 4 5 6 Helper test ");
add(syllableBuilder);
textPane.setFont(new Font(typeface, Font.PLAIN, mainSize));
textPane.setText("This is a test to see if linebreaks work");
textPane.setEditable(false);
add(textPane);
layout.putConstraint(SpringLayout.NORTH, textPane, syllableBuilder.getPreferredSize().height, SpringLayout.NORTH, this);
layout.putConstraint(SpringLayout.WEST, textPane, 0, SpringLayout.WEST, this);
layout.putConstraint(SpringLayout.EAST, textPane, 0, SpringLayout.EAST, this);
layout.putConstraint(SpringLayout.SOUTH, textPane, 0, SpringLayout.SOUTH, this);
}
}
< /code>
(Последнее пространство в тестовом тексту, которое я вкладываю на JTextPane, на самом деле представляет собой пространство с нулевой шириной и неразрывное пространство-дуэт) < /p>
Я на самом деле не пробовал никаких идей о том, как решить эту проблему, потому что почти все предшествующие вопросы и ответы, связанные с ними, не так, как и в противном случае, что они не захотят. До сих пор я нашел один < /em> экземпляр человека, у которого была похожая проблема с моей, но им не нужно было быть гибким, чтобы быть гибким вне их применения (я хочу скопировать мой для использования в другом месте) и, таким образом, мог решить эту проблему, вставив вручную линейки и остановившись в области нулевой ширины. Другой способ? Мне нужно было бы написать или расширить редактирование, чтобы он понимал больше видов пространств, чем просто ванильный вид. Однако я не знаю , как сделать это.
Что мне удалось сделать, это расширить JTextArea, так что он будет ведущим правильное ведение-динамически вставив '\ n'-chars в строку, которую он хранит, чтобы правильно отображать текст, а затем снимая сказанные «\ n'-Chars» снова в форме «)» ()-это то, что я не так, что я не знаю, что я не знаю, что я использую разницу. /> Я все равно был бы заинтересован в понимании того, как сделать Editorkit-Teth, но я думаю, что больше нет срочности. < /p>
Подробнее здесь: https://stackoverflow.com/questions/797 ... dth-spaces
Как сделать JTextPane Do Line Breaks с нулевой шириной? ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1759315583
Anonymous
Я пытаюсь написать очень ограниченный текстовый редактор с Java, чтобы облегчить набор печати для проекта, который использует наш алфавит несколько неортодоксальным способом. Предполагается, что этот редактор фильтровал пользовательские входы с помощью KeyListner, убедившись (среди прочего), что пробелы, напечатанные перед словами, все еще будут отображаться даже после разбивающихся линейных. Но, к сожалению, JTextPane, который я использую для отображения текста, не реагирует на мои пространства с нулевой шириной, вместо этого не делая линейных разбил.import javax.swing.JFrame;
import java.awt.Toolkit;
import javax.swing.JLayeredPane;
import javax.swing.SpringLayout;
import javax.swing.JTextPane;
import javax.swing.JLabel;
import java.awt.Font;
import java.awt.Color;
class MainClass
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setContentPane(new OwlishTypingView("Palatino", 36, 24));
frame.setSize(Toolkit.getDefaultToolkit().getScreenSize());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class OwlishTypingView extends JLayeredPane
{
SpringLayout layout = new SpringLayout();
JTextPane textPane = new JTextPane();
JLabel syllableBuilder = new JLabel();
OwlishTypingView(String typeface, int mainSize, int helperSize)
{
setBackground(Color.WHITE);
setOpaque(true);
setLayout(layout);
syllableBuilder.setFont(new Font(typeface, Font.BOLD, helperSize));
syllableBuilder.setForeground(Color.GRAY);
syllableBuilder.setText(" 1 2 3 4 5 6 Helper test ");
add(syllableBuilder);
textPane.setFont(new Font(typeface, Font.PLAIN, mainSize));
textPane.setText("This is a test to see if linebreaks work");
textPane.setEditable(false);
add(textPane);
layout.putConstraint(SpringLayout.NORTH, textPane, syllableBuilder.getPreferredSize().height, SpringLayout.NORTH, this);
layout.putConstraint(SpringLayout.WEST, textPane, 0, SpringLayout.WEST, this);
layout.putConstraint(SpringLayout.EAST, textPane, 0, SpringLayout.EAST, this);
layout.putConstraint(SpringLayout.SOUTH, textPane, 0, SpringLayout.SOUTH, this);
}
}
< /code>
(Последнее пространство в тестовом тексту, которое я вкладываю на JTextPane, на самом деле представляет собой пространство с нулевой шириной и неразрывное пространство-дуэт) < /p>
Я на самом деле не пробовал никаких идей о том, как решить эту проблему, потому что почти все предшествующие вопросы и ответы, связанные с ними, не так, как и в противном случае, что они не захотят. До сих пор я нашел один < /em> экземпляр человека, у которого была похожая проблема с моей, но им не нужно было быть гибким, чтобы быть гибким вне их применения (я хочу скопировать мой для использования в другом месте) и, таким образом, мог решить эту проблему, вставив вручную линейки и остановившись в области нулевой ширины. Другой способ? Мне нужно было бы написать или расширить редактирование, чтобы он понимал больше видов пространств, чем просто ванильный вид. Однако я не знаю , как сделать это.
Что мне удалось сделать, это расширить JTextArea, так что он будет ведущим правильное ведение-динамически вставив '\ n'-chars в строку, которую он хранит, чтобы правильно отображать текст, а затем снимая сказанные «\ n'-Chars» снова в форме «)» ()-это то, что я не так, что я не знаю, что я не знаю, что я использую разницу. /> Я все равно был бы заинтересован в понимании того, как сделать Editorkit-Teth, но я думаю, что больше нет срочности. < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/79778059/how-to-make-jtextpane-do-linebreaks-at-zero-width-spaces[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия