在此示例中,将向您展示如何设置或更改JTextArea组件的选项卡大小。您可以使用setTabSize(int size)定义标签的大小。对于此演示,我们创建一个具有一些整数值的组合框,这些框将用于定义选项卡的大小。当您更改组合框中的所选项目时,JTextArea选项卡的大小将立即更改。
package org.nhooo.example.swing; import javax.swing.*; import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; public class TextAreaSetTabSize extends JPanel { public TextAreaSetTabSize() { initializeUI(); } private void initializeUI() { this.setLayout(new BorderLayout()); this.setPreferredSize(new Dimension(500, 200)); JLabel label = new JLabel("Tab size: "); Object[] items = {2, 4, 8, 10, 20}; final JComboBox<Object> comboBox = new JComboBox<>(items); JPanel tabPanel = new JPanel(new FlowLayout()); tabPanel.add(label); tabPanel.add(comboBox); this.add(tabPanel, BorderLayout.NORTH); final JTextArea textArea = new JTextArea(); textArea.setLineWrap(true); textArea.setWrapStyleWord(true); // 设置将标签扩展到的字符数。 textArea.setTabSize((Integer) comboBox.getSelectedItem()); comboBox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { textArea.setTabSize((Integer) comboBox.getSelectedItem()); } }); JScrollPane pane = new JScrollPane(textArea); pane.setPreferredSize(new Dimension(500, 200)); pane.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); this.add(pane, BorderLayout.CENTER); } public static void showFrame() { JPanel panel = new TextAreaSetTabSize(); panel.setOpaque(true); JFrame frame = new JFrame("JTextArea Demo"); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setContentPane(panel); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { TextAreaSetTabSize.showFrame(); } }); } }
上面的代码片段的输出是: