import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.GrayFilter;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
/***
* 给JTextArea添加背景色
* @author Administrator
*
*/
public class BackgroundSample {
public static void main(String args[]) {
JFrame frame = new JFrame("Background Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final ImageIcon imageIcon = new ImageIcon("draft.gif");
JTextArea textArea = new JTextArea() {
Image image = imageIcon.getImage();
Image grayImage = GrayFilter.createDisabledImage(image);
{
setOpaque(false);
}
public void paint(Graphics g) {
g.drawImage(grayImage, 0, 0, this);
super.paint(g);
}
};
JScrollPane scrollPane = new JScrollPane(textArea);
Container content = frame.getContentPane();
content.add(scrollPane, BorderLayout.CENTER);
frame.setSize(250, 250);
frame.setVisible(true);
}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
/**
* 处理JTextArea的换行操作
* @author Administrator
*
*/
public class TextAreaFrame extends JFrame implements ActionListener{
private JButton insertButton = new JButton("Insert");
private JButton wrapButton = new JButton("Wrap");
private JButton noWrapButton = new JButton("No wrap");
private JTextArea textArea = new JTextArea(8, 40);
private JScrollPane scrollPane = new JScrollPane(textArea);
public TextAreaFrame() {
JPanel p = new JPanel();
p.add(insertButton);
insertButton.addActionListener(this);
p.add(wrapButton);
wrapButton.addActionListener(this);
p.add(noWrapButton);
noWrapButton.addActionListener(this);
getContentPane().add(p, "South");
getContentPane().add(scrollPane, "Center");
setTitle("TextAreaTest");
setSize(300, 300);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent evt) {
Object source = evt.getSource();
if (source == insertButton)
textArea
.append("textArea The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.");
else if (source == wrapButton) {
//常用方法有对两个方法介绍
textArea.setWrapStyleWord(true);
textArea.setLineWrap(true);
scrollPane.validate();
} else if (source == noWrapButton) {
textArea.setLineWrap(false);
textArea.setWrapStyleWord(false);
scrollPane.validate();
}
}
public static void main(String[] args) {
JFrame f = new TextAreaFrame();
f.show();
}
}
import java.awt.BorderLayout;
import java.awt.Container;
import java.util.Hashtable;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.text.DefaultEditorKit;
/**
* 使用按钮做剪切、复制、粘贴操作
* @author Administrator
*
*/
public class CutPasteSample {
public static void main(String args[]) {
JFrame frame = new JFrame("Cut/Paste Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container content = frame.getContentPane();
JTextField textField = new JTextField();
JTextArea textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
content.add(textField, BorderLayout.NORTH);
content.add(scrollPane, BorderLayout.CENTER);
Action actions[] = textField.getActions();
Action cutAction = TextUtilities.findAction(actions,
DefaultEditorKit.cutAction);
Action copyAction = TextUtilities.findAction(actions,
DefaultEditorKit.copyAction);
Action pasteAction = TextUtilities.findAction(actions,
DefaultEditorKit.pasteAction);
JPanel panel = new JPanel();
content.add(panel, BorderLayout.SOUTH);
JButton cutButton = new JButton(cutAction);
cutButton.setText("Cut");
panel.add(cutButton);
JButton copyButton = new JButton(copyAction);
copyButton.setText("Copy");
panel.add(copyButton);
JButton pasteButton = new JButton(pasteAction);
pasteButton.setText("Paste");
panel.add(pasteButton);
frame.setSize(250, 250);
frame.setVisible(true);
}
}
class TextUtilities {
private TextUtilities() {
}
public static Action findAction(Action actions[], String key) {
Hashtable commands = new Hashtable();
for (int i = 0; i < actions.length; i++) {
Action action = actions[i];
commands.put(action.getValue(Action.NAME), action);
}
return (Action) commands.get(key);
}
}
分享到:
相关推荐
本文将详细介绍如何使用Java Swing中的`JTextArea`组件实现不可修改的文本内容,并定制右键菜单。 #### 二、基础知识 在深入了解实现细节之前,我们先简要回顾一下与本主题相关的基础知识: 1. **JTextArea**: `...
这里我们将详细讲解如何通过继承 `AbstractBorder` 类来创建一个具有行号功能的自定义边框,并将其应用到 `JTextArea` 上。 首先,让我们分析提供的文件名 `LineNumberBorder.java`。这很可能是实现行号功能的...
根据给定的信息,本文将详细解释如何通过Java Swing框架中的`JTextArea`组件来实现更改特定文本区域背景颜色的功能。 ### 一、项目背景与需求分析 #### 1.1 项目背景 在开发图形用户界面(GUI)应用时,经常需要对...
今天,我们将详细介绍swing jtextArea滚动条和文字缩放效果,并提供了相关的代码实例。 首先,让我们了解一下swing jtextArea的基本概念。swing jtextArea是一个组件,用于显示多行文本,可以滚动、编辑和格式化...
下面将详细解释如何在JTextArea中有效地显示数组列表中的所有数据。 首先,我们需要创建一个JTextArea实例。这可以通过调用`new JTextArea()`完成,或者可以设置初始行数和列数,如`new JTextArea(numRows, ...
"Java_Swing的复杂控件" 本资源主要介绍了Java_Swing中的多种复杂控件的使用,特别是JTextArea控件的...本资源提供了JTextArea控件的使用和事件处理的详细介绍,帮助开发者更好地理解和使用Java_Swing中的复杂控件。
提供的详细使用说明将涵盖系统安装、配置、操作步骤和常见问题解答,帮助用户快速上手和解决可能出现的问题。 10. **测试与调试** 项目中可能包含单元测试和集成测试,以验证各模块功能的正确性,并使用调试工具...
以下是一个详细的步骤指南,帮助开发者解决乱码问题。 **第一步:** 检查系统默认字符集设置。可以通过命令行输入 `locale` 来查看当前系统的语言环境变量。如果发现字符集不是UTF-8或其他支持中文的编码格式,则...
2. **关键字搜索与匹配**:通过比较 `jTextField1` 中的文本与 `jTextArea1` 的内容来查找关键字。 3. **文本高亮显示**:利用 `Highlighter` 接口对找到的关键字进行颜色高亮处理。 ### 详细说明 #### 1. 文本...
8. **文档编写**:项目包含“详细使用说明”,意味着开发者不仅实现了功能,还提供了用户指南,这涉及到技术写作技巧,包括功能描述、操作步骤和常见问题解答。 9. **版本控制**:考虑到项目的持续维护,开发者可能...
本文将深入探讨如何使用`JTextArea`来实现一个模拟控制台,并讨论相关的设计模式和技术。 首先,让我们了解`JTextArea`。`JTextArea`是Java Swing库中的一个组件,它可以用来显示和编辑多行文本。通过设置其属性,...
1. **组件使用**:包括JFrame、JPanel、JButton、JLabel、JTextArea、JTextField等基本组件的使用方法,以及如何自定义组件。 2. **布局管理**:讲解各种布局管理器如FlowLayout、BorderLayout、GridLayout、...
开发者可能用JTextArea记录租赁合同,使用JSpinner来设置租赁天数,通过JButton执行租车和还车操作。 3. **客户管理**:系统会保存客户的基本信息,如姓名、联系方式、驾驶证号等。可以使用JForm来输入和编辑客户...
5. **文本处理**:JTextArea用于显示和编辑文本,它的内容可以使用Document接口进行管理。查找和替换功能需要对文本进行搜索,并可能涉及到正则表达式。 6. **代码详细解说**:文档中提供的代码详细解说对于理解每...
程序使用了多个类和接口,包括 This_number_too_big 异常类、MyTextEditor 类、Dialog 类、JButton 类、JLabel 类、JTextArea 类等。 五、测试分析 测试分析中,需要对程序进行功能测试和性能测试。功能测试中,...
"打开"功能则涉及到`java.io.*`包中的文件读取,可能使用`BufferedReader`或者`FileReader`读取文本文件内容并填充到`JTextArea`;"保存"功能可能是利用`BufferedWriter`或`FileWriter`将`JTextArea`的内容写入到...
* 在MyFrame窗口中,使用JTextArea显示文字信息,使用JButton按钮控件实现文字的颜色、字体、字号的修改。 * 使用Font类设置文字的字体和大小,使用Color类设置文字的颜色。 * 使用ActionListener监听按钮事件,...
要为`txtQueryResult`添加滚动条,可以使用`JScrollPane`组件来包装`JTextArea`。下面将详细介绍如何实现这一功能: 1. **创建JScrollPane实例**: - 创建一个新的`JScrollPane`对象,并将`txtQueryResult`作为...
7. **视频教程和详细文档**:这部分可能是为了帮助用户或开发者理解系统的实现细节和操作流程,提供了从理论到实践的指导。 8. **源代码**:包含了系统的全部Java代码,可以供学习者分析和修改,了解如何使用Swing...
JPannel1 中包含一个 JTextArea 文档和一个“CE”按钮,用于显示计算结果和清零操作。JPannel2 中包含了 16 个按钮,用于实现加、减、乘、除、等基本运算。 2. 系统详细设计 在系统详细设计中,我们首先定义了三个...