`
plkong
  • 浏览: 176861 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

一个l类似 Jlabel 用于自动换行的文本显示组件

 
阅读更多

在Swing中Jlabel组件显示长文本不换行,用JtextArea可以换行但显示有点不适合用于只显示文本的地方,所以可以将两者结合,组成一个显示效果类似于Jlabel的看换行的组件。

 

 

import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.LookAndFeel;

public class MyJTextArea {

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {

			@Override
			public void run() {
				ButtonFrame frame = new ButtonFrame();
				frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				frame.setVisible(true);
			}
		});
	}

}

class ButtonFrame extends JFrame {
	private static final long serialVersionUID = 1L;

	public ButtonFrame() {
		setTitle("ButtonTest");
		setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

		mainPanel = new JPanel(new BorderLayout());

		label = new MultilineLabel("发表主题时如果选上“标记为问题”,在得到“有帮助的”或“正确的”答案后,"
				+ "请在回帖旁边点“有帮助的”或“正确的”按钮,系统将奖励积分给该回帖的作者。"
				+ "主题作者的信誉值也会增加。除此之外,还可以在发表主题后自已设定奖励积分。 ");

		mainPanel.add(label, BorderLayout.CENTER);
		add(mainPanel);

		this.setResizable(true);

	}

	private JPanel mainPanel;
	private MultilineLabel label;
	public static final int DEFAULT_WIDTH = 600;
	public static final int DEFAULT_HEIGHT = 300;
}

/**
 * 一个用于显示文本,并且可以自动换行的自定义组件<br>
 * 
 * @author freedog
 * 
 */
class MultilineLabel extends JTextArea {
	public MultilineLabel(String s) {
		super(s);
	}

	public void updateUI() {
		super.updateUI();

		// 设置为自动换行
		setLineWrap(true);
		setWrapStyleWord(true);
		setHighlighter(null);
		setEditable(false);

		// 设置为label的边框,颜色和字体
		LookAndFeel.installBorder(this, "Label.border");

		LookAndFeel.installColorsAndFont(this, "Label.background",
				"Label.foreground", "Label.font");

	}
}
 
分享到:
评论

相关推荐

    Jlabel实现内容自动换行简单实例

    JLabel是一个Java Swing中的组件,用于显示文本或图像。在实际开发中,我们经常需要在JLabel中显示较长的文本,然而JLabel默认情况下不会自动换行,这将导致文本溢出或难以阅读。因此,这篇文章将介绍如何实现JLabel...

    JTable自动换行

    为了实现自动换行,我们需要自定义一个渲染器,例如提供一个支持多行文本的`JTextArea`或`JLabel`。`TableCellTextAreaRenderer.java`文件很可能包含了这样一个自定义渲染器的实现。 下面是一个简单的`...

    java JLabel实例

    首先,JLabel的基本用法是创建一个显示文本的标签。例如: ```java JLabel label = new JLabel("欢迎来到Java世界!"); ``` 这行代码会创建一个包含文字“欢迎来到Java世界!”的标签。JLabel可以添加到容器(如...

    WrapLayoutTest.rar

    在Java的Swing库中,`WrapLayout`是一种布局管理器,它允许组件在容器中自动换行,类似于文本的换行。这个`WrapLayoutTest.rar`文件可能包含了一个示例程序,用于演示如何使用`WrapLayout`。下面将详细解释`...

    java图形界面用于填写学生基本信息

    可以通过 setFont 方法设置字体样式,通过 setTabSize、setLineWrap 和 setWrapStyleWord 方法来设置文本区域的特性,如制表符宽度、自动换行等功能。 #### 4.2 JLabel JLabel 用于显示静态文本。可以设置文本内容...

    一条一条显示的跑马灯

    1. **创建UI组件**:使用`JLabel`或`TextArea`创建一个可以滚动显示文本的区域。如果是JavaFX,可以使用`TextFlow`或`Label`。 2. **存储文本数据**:将要显示的文本存储在一个字符串数组或列表中,每条文本对应一...

    java Swing(容器,简单控件,布局管理器)

    - **JLabel**:标签组件,用于显示文本或图标。 ##### JLabel - **特点**:JLabel 用于显示静态文本或图像。 - **构造函数**: - `JLabel()`:创建空标签。 - `JLabel(Icon icon)`:使用指定图标创建标签。 - `...

    面向对象的程序设计-java张白一第三版第章(共142张PPT).pptx

    例如,JLabel 用于显示文本或图像,不可编辑;JButton 用于触发用户操作;JToggleButton 可以在选中和未选中状态之间切换;JCheckBox 和 JRadioButton 分别用于多选和单选;JComboBox 提供下拉列表选择;JList 显示...

    Window Builder功能介绍

    - JTextPane和JEditorPane:文本组件,能够显示和编辑富文本内容。 - JSpinner:数字调节控件,允许用户通过增减按钮调整数值。 - JList:列表组件,用于显示一系列可选的条目。 - JTable:表格组件,用于显示和编辑...

    java模拟Windows的一个记事本

    Java Swing是Java GUI(图形用户界面)库的一部分,它提供了丰富的组件和工具,可以用于创建桌面应用程序,包括模拟像Windows记事本这样的文本编辑器。在这个项目中,开发者利用Swing构建了一个功能基本完备的文本...

    java Swing 气泡浮动提示窗口代码

    2. **组件**:`ToolTipSingle`包含了一个`JLabel` `_iconLabel` 和一个`JTextArea` `_message`。`JLabel`用于显示图标,`JTextArea`用于显示提示文本。`JTextArea`设置了自动换行和单词边界包裹,使得多行文本可以在...

    实验 GUI程序设计

    这可能涉及到创建一个JFrame,使用数组或集合来存储扑克牌的信息,然后通过遍历这些数据并在JLabel或其他组件中显示。你可能需要用到`JScrollPane`来滚动显示所有的牌,或者采用多列布局来避免窗口过大。 第三部分...

    怎样把图片copy

    综上所述,这段代码示例展示了如何使用Java Swing创建一个简单的图形用户界面,包括文本显示和按钮操作等功能,并涉及到基本的文件操作。虽然该示例较为简单且存在一些未完成的部分,但它为学习Java Swing和文件操作...

    用JAVA 编写的推箱子小游戏

    - `FlowLayout`:将组件按顺序放置在容器中,当一行的空间不够时,自动换行。 ### 4. 字体设置 - `setFont(new Font("", Font.BOLD, 40));`方法用于设置组件的字体,参数分别表示字体名称、样式和大小。 ### 5. ...

    SWING—JAVA 基础类组件集

    - CardLayout:允许在同一个容器中切换显示不同的组件,就像翻卡片一样。 ### Swing的Look and Feel Swing的外观和感觉可以通过更换Look and Feel来实现。Look and Feel是Swing组件的外观和行为的集合,例如按钮的...

    《java实用组件集》 源码 图文混排组件

    综上所述,《java实用组件集》中的“图文混排组件”源码是一个宝贵的资源,它涵盖了Java GUI开发中的一个重要领域。通过学习和实践这些源码,开发者可以提升自己在图文混排方面的技能,更好地应对各种界面设计挑战。...

    个人简历java制作

    此外,程序中几乎涵盖了Swing库中的所有控件,如JLabel用于显示文本信息,JTextField和JTextArea供用户输入或查看详细信息,JButton用于触发特定动作,如提交或打印简历。还有可能用到了JComboBox来实现下拉菜单,...

    java基础学习内容

    列表用于显示一个项目列表,用户可以选择其中一个或多个项。 ##### 9. 标签(JLabel) 标签用于显示静态文本或图像。 ##### 10. 密码字段(JPasswordField) 密码字段用于输入密码,输入的文字会被隐藏。 ##### 11....

    Notepad.rar

    - **自动换行**:Java文本组件默认支持自动换行,当文本超出边界时,会自动换行显示。 3. **文件操作**: - **新建**:创建新的文本文件,使用`File`类和`BufferedWriter`类来创建并写入文件。 - **保存**:将...

Global site tag (gtag.js) - Google Analytics