Итак, у меня есть простой текстовый редактор, и на данный момент большинство его функций работают, однако добавление полос прокрутки там, где у меня проблемы. Я пробовал искать вещи с добавлением к фрейму и оттуда, но это просто удаляет мою способность печатать или видеть что угодно. На данный момент я добавляю панель содержимого, но, похоже, она не регистрирует полосы прокрутки. Также, когда это происходит, они непригодны для использования, а остальная часть текстовой области неприменима. Вот небольшой код кода, который имеет дело с этим, не могли бы вы помочь мне найти, что происходит не так.В моей текстовой области полосы прокрутки не отображаются или работают
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.DocumentListener;
import javax.swing.event.DocumentEvent;
import java.util.Scanner;
import java.io.*;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultHighlighter;
import javax.swing.text.Highlighter;
import javax.swing.text.Highlighter.HighlightPainter;
import javax.swing.text.JTextComponent;
import java.net.URI;
public class MyTextEditor extends JFrame implements ActionListener
{
private JFrame frame = new JFrame();
private JPanel panel = new JPanel(new BorderLayout());
private JTextArea textArea = new JTextArea(0,0);
private JScrollPane scrollPane = new JScrollPane(textArea,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
private MenuBar menuBar = new MenuBar();
private Menu file = new Menu();
private Menu edit = new Menu();
private Menu find = new Menu();
private Menu goTo = new Menu();
private Menu help = new Menu();
private Menu prefs = new Menu();
//File
private MenuItem openFile = new MenuItem();
private MenuItem saveFile = new MenuItem();
private MenuItem closeFile = new MenuItem();
private MenuItem newFile = new MenuItem();
//Edit
private MenuItem copy = new MenuItem();
private MenuItem paste = new MenuItem();
private MenuItem cut = new MenuItem();
private MenuItem search = new MenuItem();
private MenuItem replace = new MenuItem();
//GoTo
private MenuItem goToLine = new MenuItem();
//Help
private MenuItem documentation = new MenuItem();
//Prefs
private MenuItem toggleLines = new MenuItem();
public MyTextEditor()
{
//Set the basis for the text editor
this.setSize(750,800);
frame.setTitle("Zenith");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
textArea.setFont(new Font("Consolas", Font.BOLD, 14));
textArea.setForeground(Color.GREEN);
textArea.setBackground(Color.BLACK);
textArea.setCaretColor(Color.WHITE);
//scrollPane.setBounds(20, 30, 100, 40);
textArea.getCaret().setVisible(true);
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setPreferredSize(new Dimension(20,50));
//scrollPane.add(textArea);
scrollPane.setVisible(true);
//scrollPane.getHorizontalScrollBar().isVisible();
//scrollPane.getVerticalScrollBar().isVisible();
//textArea.add(scrollPane,BorderLayout.EAST);
// Line numbers
final LineNumberingTextArea lineNTA = new LineNumberingTextArea(textArea);
DocumentListener documentListen = new DocumentListener()
{
public void insertUpdate(DocumentEvent documentEvent)
{
lineNTA.updateLineNumbers();
}
public void removeUpdate(DocumentEvent documentEvent)
{
lineNTA.updateLineNumbers();
}
public void changedUpdate(DocumentEvent documentEvent)
{
lineNTA.updateLineNumbers();
}
};
textArea.getDocument().addDocumentListener(documentListen);
lineNTA.setBackground(Color.BLACK);
lineNTA.setForeground(Color.WHITE);
lineNTA.setFont(new Font("Consolas", Font.BOLD, 13));
lineNTA.setEditable(false);
lineNTA.setVisible(true);
getContentPane().add(lineNTA,BorderLayout.WEST);
getContentPane().add(scrollPane);
getContentPane().add(textArea);
//getContentPane().setLayout(new BorderLayout());
//scrollPane.setRowHeaderView(lineNTA);
//frame.getContentPane().add(textArea);
//panel.add(lineNumber,BorderLayout.EAST);
//Numbers along the side
setMenuBar(this.menuBar);
menuBar.add(this.file);
menuBar.add(this.edit);
menuBar.add(this.find);
menuBar.add(this.goTo);
menuBar.add(this.help);
menuBar.add(this.prefs);
file.setLabel("File");
find.setLabel("Find");
edit.setLabel("Edit");
goTo.setLabel("Goto");
help.setLabel("Help");
prefs.setLabel("Preferences");
Пожалуйста, см редактировать ответить. Также, если это не отвечает на ваш вопрос, пожалуйста, создайте и опубликуйте действительный [mcve]. –
См. Дополнительные изменения для ответа, включая код. Опять же, если вы застряли, создайте и опубликуйте свой [mcve]. Пример этого типа кода отправлен с моим ответом. –
Отредактировано в 3-й раз. Прокомментируйте, пожалуйста, какие-либо вопросы или недоразумения с моим ответом. –