java jtextarea.setfont,Java JTextArea用法

本文详细介绍了Java中的JTextArea类,这是一个用于显示和编辑多行文本的组件。文章列举了JTextArea的构造函数,如创建空白文本区域、指定行列数的文本区域等,并展示了如何设置行数、列数和字体。此外,还提供了插入文本、追加文本的方法示例。文章通过两个示例,演示了JTextArea的基本使用,包括创建简单的文本区域和实现计数单词及字符的功能。

本文概述

JTextArea类的对象是显示文本的多行区域。它允许编辑多行文本。它继承了JTextComponent类

JTextArea类声明

我们来看一下javax.swing.JTextArea类的声明。

public class JTextArea extends JTextComponent

常用的构造函数:

建设者

描述

JTextArea()

创建一个文本区域, 该区域最初不显示任何文本。

JTextArea(String s)

创建一个文本区域, 该区域最初显示指定的文本。

JTextArea(int row, int column)

创建具有指定行数和列数的文本区域, 该区域最初不显示任何文本。

JTextArea(String s, int row, int column)

创建具有指定行数和列数的文本区域, 以显示指定的文本。

常用方法:

方法

描述

void setRows(int rows)

它用于设置指定的行数。

void setColumns(int cols)

用于设置指定的列数。

void setFont(Font f)

用于设置指定的字体。

void insert(String s, int position)

用于在指定位置插入指定文本。

void append(String s)

它用于将给定的文本附加到文档末尾。

Java JTextArea示例

import javax.swing.*;

public class TextAreaExample

{

TextAreaExample(){

JFrame f= new JFrame();

JTextArea area=new JTextArea("Welcome to srcmini");

area.setBounds(10, 30, 200, 200);

f.add(area);

f.setSize(300, 300);

f.setLayout(null);

f.setVisible(true);

}

public static void main(String args[])

{

new TextAreaExample();

}}

输出:

java-jtextarea1.png

带有ActionListener的Java JTextArea示例

import javax.swing.*;

import java.awt.event.*;

public class TextAreaExample implements ActionListener{

JLabel l1, l2;

JTextArea area;

JButton b;

TextAreaExample() {

JFrame f= new JFrame();

l1=new JLabel();

l1.setBounds(50, 25, 100, 30);

l2=new JLabel();

l2.setBounds(160, 25, 100, 30);

area=new JTextArea();

area.setBounds(20, 75, 250, 200);

b=new JButton("Count Words");

b.setBounds(100, 300, 120, 30);

b.addActionListener(this);

f.add(l1);f.add(l2);f.add(area);f.add(b);

f.setSize(450, 450);

f.setLayout(null);

f.setVisible(true);

}

public void actionPerformed(ActionEvent e){

String text=area.getText();

String words[]=text.split("\s");

l1.setText("Words: "+words.length);

l2.setText("Characters: "+text.length());

}

public static void main(String[] args) {

new TextAreaExample();

}

}

输出:

java-jtextarea2.png

import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.RenderingHints; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import javax.swing.border.TitledBorder; public class SportAdd extends JFrame implements ActionListener { JTextField text_productName; JTextField text_category; JTextField text_price; JTextField text_stock; JTextField text_brand; JTextArea text_description; JButton btnConfirm; JButton btnCancel; SportManneger parentFrame; SportAdd(SportManneger parent) { super("添加体育商品"); this.parentFrame = parent; initUI(); } SportAdd() { super("添加体育商品"); initUI(); } private void initUI() { setResizable(false); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setLocationRelativeTo(null); Container c = getContentPane(); // 背景面板 JPanel backgroundPanel = new JPanel(new BorderLayout()) { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); java.awt.GradientPaint gradient = new java.awt.GradientPaint( 0, 0, new Color(240, 248, 255), 0, getHeight(), new Color(230, 240, 250) ); g2d.setPaint(gradient); g2d.fillRect(0, 0, getWidth(), getHeight()); } }; backgroundPanel.setOpaque(true); JPanel mainPanel = new JPanel(new GridLayout(7, 2, 15, 15)); mainPanel.setOpaque(false); mainPanel.setBorder(BorderFactory.createCompoundBorder( new TitledBorder("商品信息"), new EmptyBorder(25, 25, 25, 25))); Font labelFont = new Font("微软雅黑", Font.BOLD, 14); Font textFont = new Font("微软雅黑", Font.PLAIN, 13); JLabel label_productName = new JLabel("商品名称:"); label_productName.setFont(labelFont); text_productName = new JTextField(); text_productName.setFont(textFont); text_productName.setBorder(BorderFactory.createCompoundBorder( BorderFactory.createLineBorder(new Color(200, 200, 200), 1, true), new EmptyBorder(8, 12, 8, 12))); JLabel label_category = new JLabel("类别:"); label_category.setFont(labelFont); text_category = new JTextField(); text_category.setFont(textFont); text_category.setBorder(BorderFactory.createCompoundBorder( BorderFactory.createLineBorder(new Color(200, 200, 200), 1, true), new EmptyBorder(8, 12, 8, 12))); JLabel label_price = new JLabel("价格:"); label_price.setFont(labelFont); text_price = new JTextField(); text_price.setFont(textFont); text_price.setBorder(BorderFactory.createCompoundBorder( BorderFactory.createLineBorder(new Color(200, 200, 200), 1, true), new EmptyBorder(8, 12, 8, 12))); JLabel label_stock = new JLabel("库存:"); label_stock.setFont(labelFont); text_stock = new JTextField(); text_stock.setFont(textFont); text_stock.setBorder(BorderFactory.createCompoundBorder( BorderFactory.createLineBorder(new Color(200, 200, 200), 1, true), new EmptyBorder(8, 12, 8, 12))); JLabel label_brand = new JLabel("品牌:"); label_brand.setFont(labelFont); text_brand = new JTextField(); text_brand.setFont(textFont); text_brand.setBorder(BorderFactory.createCompoundBorder( BorderFactory.createLineBorder(new Color(200, 200, 200), 1, true), new EmptyBorder(8, 12, 8, 12))); JLabel label_description = new JLabel("描述:"); label_description.setFont(labelFont); text_description = new JTextArea(3, 20); text_description.setFont(textFont); text_description.setLineWrap(true); text_description.setWrapStyleWord(true); text_description.setBorder(BorderFactory.createCompoundBorder( BorderFactory.createLineBorder(new Color(200, 200, 200), 1, true), new EmptyBorder(8, 12, 8, 12))); btnConfirm = createStyledButton("确定", new Color(34, 139, 34), new Color(50, 205, 50)); btnCancel = createStyledButton("取消", new Color(128, 128, 128), new Color(169, 169, 169)); mainPanel.add(label_productName); mainPanel.add(text_productName); mainPanel.add(label_category); mainPanel.add(text_category); mainPanel.add(label_price); mainPanel.add(text_price); mainPanel.add(label_stock); mainPanel.add(text_stock); mainPanel.add(label_brand); mainPanel.add(text_brand); mainPanel.add(label_description); mainPanel.add(text_description); JPanel buttonPanel = new JPanel(); buttonPanel.setOpaque(false); buttonPanel.setBorder(new EmptyBorder(15, 0, 15, 0)); buttonPanel.add(btnConfirm); buttonPanel.add(new JLabel(" ")); buttonPanel.add(btnCancel); backgroundPanel.add(mainPanel, BorderLayout.CENTER); backgroundPanel.add(buttonPanel, BorderLayout.SOUTH); c.add(backgroundPanel); setSize(500, 500); setVisible(true); } // 创建美化按钮 private JButton createStyledButton(String text, Color bgColor, Color hoverColor) { JButton btn = new JButton(text) { @Override protected void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D) g.create(); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); if (getModel().isPressed()) { g2d.setColor(bgColor.darker()); } else if (getModel().isRollover()) { g2d.setColor(hoverColor); } else { g2d.setColor(bgColor); } g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 8, 8); g2d.dispose(); super.paintComponent(g); } }; btn.setFont(new Font("微软雅黑", Font.BOLD, 14)); btn.setForeground(Color.WHITE); btn.setPreferredSize(new Dimension(100, 40)); btn.setFocusPainted(false); btn.setBorderPainted(false); btn.setContentAreaFilled(false); btn.setOpaque(false); btn.addActionListener(this); return btn; } @Override public void actionPerformed(ActionEvent e) { if(e.getSource() == btnConfirm) { // 验证输入 if(text_productName.getText().trim().isEmpty()) { JOptionPane.showMessageDialog(null, "请输入商品名称!", "提示", JOptionPane.WARNING_MESSAGE); return; } if(text_category.getText().trim().isEmpty()) { JOptionPane.showMessageDialog(null, "请输入类别!", "提示", JOptionPane.WARNING_MESSAGE); return; } if(text_price.getText().trim().isEmpty()) { JOptionPane.showMessageDialog(null, "请输入价格!", "提示", JOptionPane.WARNING_MESSAGE); return; } if(text_stock.getText().trim().isEmpty()) { JOptionPane.showMessageDialog(null, "请输入库存!", "提示", JOptionPane.WARNING_MESSAGE); return; } try { double price = Double.parseDouble(text_price.getText()); int stock = Integer.parseInt(text_stock.getText()); // 插入数据库 Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/sport_sql","root","1234"); String sql = "insert into products (商品名称, 类别, 价格, 库存, 品牌, 描述) values (?, ?, ?, ?, ?, ?)"; PreparedStatement ps = con.prepareStatement(sql); ps.setString(1, text_productName.getText().trim()); ps.setString(2, text_category.getText().trim()); ps.setDouble(3, price); ps.setInt(4, stock); ps.setString(5, text_brand.getText().trim()); ps.setString(6, text_description.getText().trim()); ps.executeUpdate(); JOptionPane.showMessageDialog(null, "商品添加成功!", "成功", JOptionPane.INFORMATION_MESSAGE); con.close(); // 如果父窗口存在,刷新表格 if(parentFrame != null) { parentFrame.refreshTable(); } dispose(); } catch(NumberFormatException ex) { JOptionPane.showMessageDialog(null, "价格和库存必须是数字!", "错误", JOptionPane.ERROR_MESSAGE); } catch(SQLException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(null, "添加失败: " + ex.getMessage(), "错误", JOptionPane.ERROR_MESSAGE); } } else if(e.getSource() == btnCancel) { dispose(); } } public static void main(String[] args) { new SportAdd(); } } 美化这个界面 只是对页面美化 不要修改其他代码
最新发布
12-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值