在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是一个Java Swing中的组件,用于显示文本或图像。在实际开发中,我们经常需要在JLabel中显示较长的文本,然而JLabel默认情况下不会自动换行,这将导致文本溢出或难以阅读。因此,这篇文章将介绍如何实现JLabel...
为了实现自动换行,我们需要自定义一个渲染器,例如提供一个支持多行文本的`JTextArea`或`JLabel`。`TableCellTextAreaRenderer.java`文件很可能包含了这样一个自定义渲染器的实现。 下面是一个简单的`...
首先,JLabel的基本用法是创建一个显示文本的标签。例如: ```java JLabel label = new JLabel("欢迎来到Java世界!"); ``` 这行代码会创建一个包含文字“欢迎来到Java世界!”的标签。JLabel可以添加到容器(如...
在Java的Swing库中,`WrapLayout`是一种布局管理器,它允许组件在容器中自动换行,类似于文本的换行。这个`WrapLayoutTest.rar`文件可能包含了一个示例程序,用于演示如何使用`WrapLayout`。下面将详细解释`...
可以通过 setFont 方法设置字体样式,通过 setTabSize、setLineWrap 和 setWrapStyleWord 方法来设置文本区域的特性,如制表符宽度、自动换行等功能。 #### 4.2 JLabel JLabel 用于显示静态文本。可以设置文本内容...
1. **创建UI组件**:使用`JLabel`或`TextArea`创建一个可以滚动显示文本的区域。如果是JavaFX,可以使用`TextFlow`或`Label`。 2. **存储文本数据**:将要显示的文本存储在一个字符串数组或列表中,每条文本对应一...
- **JLabel**:标签组件,用于显示文本或图标。 ##### JLabel - **特点**:JLabel 用于显示静态文本或图像。 - **构造函数**: - `JLabel()`:创建空标签。 - `JLabel(Icon icon)`:使用指定图标创建标签。 - `...
例如,JLabel 用于显示文本或图像,不可编辑;JButton 用于触发用户操作;JToggleButton 可以在选中和未选中状态之间切换;JCheckBox 和 JRadioButton 分别用于多选和单选;JComboBox 提供下拉列表选择;JList 显示...
- JTextPane和JEditorPane:文本组件,能够显示和编辑富文本内容。 - JSpinner:数字调节控件,允许用户通过增减按钮调整数值。 - JList:列表组件,用于显示一系列可选的条目。 - JTable:表格组件,用于显示和编辑...
Java Swing是Java GUI(图形用户界面)库的一部分,它提供了丰富的组件和工具,可以用于创建桌面应用程序,包括模拟像Windows记事本这样的文本编辑器。在这个项目中,开发者利用Swing构建了一个功能基本完备的文本...
2. **组件**:`ToolTipSingle`包含了一个`JLabel` `_iconLabel` 和一个`JTextArea` `_message`。`JLabel`用于显示图标,`JTextArea`用于显示提示文本。`JTextArea`设置了自动换行和单词边界包裹,使得多行文本可以在...
这可能涉及到创建一个JFrame,使用数组或集合来存储扑克牌的信息,然后通过遍历这些数据并在JLabel或其他组件中显示。你可能需要用到`JScrollPane`来滚动显示所有的牌,或者采用多列布局来避免窗口过大。 第三部分...
综上所述,这段代码示例展示了如何使用Java Swing创建一个简单的图形用户界面,包括文本显示和按钮操作等功能,并涉及到基本的文件操作。虽然该示例较为简单且存在一些未完成的部分,但它为学习Java Swing和文件操作...
- `FlowLayout`:将组件按顺序放置在容器中,当一行的空间不够时,自动换行。 ### 4. 字体设置 - `setFont(new Font("", Font.BOLD, 40));`方法用于设置组件的字体,参数分别表示字体名称、样式和大小。 ### 5. ...
- CardLayout:允许在同一个容器中切换显示不同的组件,就像翻卡片一样。 ### Swing的Look and Feel Swing的外观和感觉可以通过更换Look and Feel来实现。Look and Feel是Swing组件的外观和行为的集合,例如按钮的...
综上所述,《java实用组件集》中的“图文混排组件”源码是一个宝贵的资源,它涵盖了Java GUI开发中的一个重要领域。通过学习和实践这些源码,开发者可以提升自己在图文混排方面的技能,更好地应对各种界面设计挑战。...
此外,程序中几乎涵盖了Swing库中的所有控件,如JLabel用于显示文本信息,JTextField和JTextArea供用户输入或查看详细信息,JButton用于触发特定动作,如提交或打印简历。还有可能用到了JComboBox来实现下拉菜单,...
列表用于显示一个项目列表,用户可以选择其中一个或多个项。 ##### 9. 标签(JLabel) 标签用于显示静态文本或图像。 ##### 10. 密码字段(JPasswordField) 密码字段用于输入密码,输入的文字会被隐藏。 ##### 11....
- **自动换行**:Java文本组件默认支持自动换行,当文本超出边界时,会自动换行显示。 3. **文件操作**: - **新建**:创建新的文本文件,使用`File`类和`BufferedWriter`类来创建并写入文件。 - **保存**:将...