最近 小研究了一哈 java swing 这东西,感觉java在这方面还是不错
此小节 JTextArea 实现了copy和past 用到了几个方法
首先为了以后方便做了一个启动类(很简单的一个东西)
public class DoMain {
public static void main(String[] a){
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JTextAreaTest tb = new JTextAreaTest();//以后直接把此行替换就行了
tb.setLocationRelativeTo(null);
tb.setVisible(true);
}
});
}
}
JTextAreaTest 类:
@SuppressWarnings("serial")
public class JTextAreaTest extends javax.swing.JFrame {
private JMenuBar jMenuBar1;
private JMenuItem mucopy;
private JMenuItem mupast;
private JScrollPane jsp;
private JTextArea jta;
private JMenu jMenu1;
public JTextAreaTest() {
super();
initGUI();
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
{
jsp = new JScrollPane();
getContentPane().add(jsp, BorderLayout.CENTER);
{
jta = new JTextArea();
jsp.setViewportView(jta);
}
}
{
jMenuBar1 = new JMenuBar();
setJMenuBar(jMenuBar1);
{
jMenu1 = new JMenu();
jMenuBar1.add(jMenu1);
jMenu1.setText("\u7f16\u8f91");
{
mucopy = new JMenuItem();
jMenu1.add(mucopy);
mucopy.setText("\u590d\u5236");
}
{
mupast = new JMenuItem();
jMenu1.add(mupast);
mupast.setText("\u7c98\u8d34");
mupast.setEnabled(false);
}
mucopy.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ActionListenerTest ap = new ActionListenerTest();
mupast.setEnabled(ap.copy(e, jta.getText()));
}
});
mupast.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ActionListenerTest ap = new ActionListenerTest();
jta.replaceRange(ap.past(e),jta.getSelectionStart(),jta.getSelectionEnd());
// jta.setText(jta.getText()+ap.past(e));
}
});
}
}
pack();
this.setSize(546, 359);
} catch (Exception e) {
e.printStackTrace();
}
}
}
把actionlistener 的方法都写到例外一个类里面了 大体上让主体上代码好看些
public class ActionListenerTest {
public String past(ActionEvent e) {
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
if(clipboard.isDataFlavorAvailable(DataFlavor.stringFlavor)){
try {
String content = (String)clipboard.getData(DataFlavor.stringFlavor);
return content;
} catch (UnsupportedFlavorException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
return "copy";
}
public boolean copy(ActionEvent e,String content) {
StringSelection contents = new StringSelection(content);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(contents, null);
if(clipboard.isDataFlavorAvailable(DataFlavor.stringFlavor)){
return true;
}
return false;
}
}
效果图
(也可见附件)
刚开始做的一个东西 , 功能很少 、、、一步步让它更强大
- 大小: 17.6 KB
分享到:
相关推荐
### Java Swing JTextArea 实现不可修改文本内容及右键菜单定制 #### 一、概述 在Java Swing开发中,`JTextArea` 是一个非常常用的组件,用于显示或编辑多行文本。有时候,我们可能需要创建一个只读的文本区域或者...
"swing jtextArea滚动条和文字缩放效果详解" swing jtextArea是Java Swing中的一种组件,用于显示多行文本。今天,我们将详细介绍swing jtextArea滚动条和文字缩放效果,并提供了相关的代码实例。 首先,让我们...
Java Swing JTextArea 文本区域的实现示例 Java Swing JTextArea 文本区域是 Java Swing 库中的一种基本组件,用于编辑多行文本。JTextArea 组件可以编辑多行文本,并提供了许多有用的方法来处理文本。 概述 ...
### Swing中文乱码问题(Linux和Windows) #### Linux系统下的解决方案 在Linux系统下使用Swing进行GUI开发时,可能会遇到中文乱码的问题。解决这一问题通常需要对系统的编码环境进行适当的配置。以下是一个详细的...
今天,我们将学习如何使用 Java 弹出菜单来为 JTextArea 添加右键弹出式菜单,实现复制、粘贴、剪切功能。 一、Java 弹出菜单概述 Java 弹出菜单是一种 context-sensitive 菜单,即在用户点击右键时出现的菜单。它...
而JTextArea是Swing组件库中的一个文本区域,常用于显示多行文本,用户可以读取但不能编辑。在某些情况下,我们可能希望将Log4j的日志输出直接重定向到JTextArea,以便于在GUI应用程序中实时查看日志信息。这在调试...
在Java Swing库中,`JTextArea`是一个非常重要的组件,用于在GUI应用程序中显示和编辑多行文本。它主要用于创建类似记事本的文本输入区域,可以用来展示大量的文本数据或者接收用户输入的多行文本。`JTextArea`是`...
3. **Swing JTextArea**: `javax.swing.JTextArea` 是一个简单的文本组件,主要用于显示和编辑多行文本。虽然比 TextPane 更简单,不支持富文本,但可以用来创建基本的文本编辑器。对于简单的文本编辑需求,...
JTextArea是Swing库提供的一个多行文本编辑框组件,可以用于在GUI应用程序中显示和编辑大段文本。
在Java Swing库中,`JTextArea` 是一个用于显示和编辑多行文本的组件。有时候在编程时,我们可能需要为 `JTextArea` 添加行号功能,以方便用户阅读和编辑代码或者数据。这个功能可以通过自定义边框来实现,就像标题...
首先,Swing提供了丰富的组件库,包括JButton、JLabel、JTextField、JTextArea、JComboBox、JCheckBox、JRadioButton等,这些组件可以组合使用以创建各种复杂界面。例如,JFrame是窗口的基础,JPanel则可以作为容器...
一个类,它扩展了Swing JTextArea但添加了一个onChangeHandler lambda函数,该函数对字段Changes做出React FieldOnChangeHandler:接口 定义单个抽象函数的功能接口,它接受作为参数: 绑定到变更处理程序的文本...
Swing组件是Java GUI(图形用户界面)编程中的核心元素,它是Java Foundation Classes (JFC) 的一部分。Swing提供了一系列丰富的组件,用于构建功能强大的桌面应用程序。在本实例中,我们将深入探讨Swing组件的使用...
5. **结果显示**:使用JLabel或者JTextArea来显示计算结果。通常,计算器的结果显示区域会具有文本框的样式,能够保留前一次的计算结果,直到新的计算开始。 6. **清除功能**:提供一个“C”或“AC”按钮,用于清空...
4. **JButton, JTextField, JLabel, JTextArea**:这些是Swing的基本组件,分别代表按钮、单行文本输入框、标签和多行文本区域。它们构成了用户界面的基本元素。 5. **布局管理器(Layout Managers)**:Swing提供...
例如,`JFrame`是窗口的基础,`JButton`用于创建按钮,`JLabel`用来展示文本或图像,而`JTextArea`和`JTextField`则提供了文本输入和显示的功能。此外,Swing还提供了诸如`JTable`和`JList`这样的组件,用于展示和...
根据给定的信息,本文将详细解释如何通过Java Swing框架中的`JTextArea`组件来实现更改特定文本区域背景颜色的功能。 ### 一、项目背景与需求分析 #### 1.1 项目背景 在开发图形用户界面(GUI)应用时,经常需要对...
4. JTextArea组件:JTextArea是Java swing组件中的一种文本域组件,用于创建一个文本输入框。例如:`JTextArea ta = new JTextArea();` 5. GridLayout布局管理器:GridLayout是一种网络式的布局管理器,将容器空间...