繁体   English   中英

有没有办法在java swing中显示没有JLabel或JTextField的文本?

[英]Is there any way to display text without JLabel or JTextField in java swing?

我正在创建Swing项目,但我想知道是否有任何方法可以在不使用JLabelJTextField情况下打印文本。

我发现文本字段可能是一个,但它不像JLabel那样整洁。 (文本周围有边框)。

可以删除文本字段中的边框吗? 或者我可以使用其他方法吗?

您似乎在寻找JComponent.setBorder(null) 然而,有很多方法可以达到你想要的效果..

  1. 不透明的JLabel ,BG颜色。
  2. 自定义绘制组件..

以下是两个标准组件的示例。

在此输入图像描述

import java.awt.*;
import javax.swing.*;

class TextFieldNoBorder {

    public static void main(String[] args) {
        Runnable r = new Runnable() {
            @Override
            public void run() {
                String s = "Text without borders..";
                JPanel gui = new JPanel(new GridLayout(0,1,5,5));

                JTextField tf = new JTextField(s, 20);
                tf.setBorder(null);

                gui.add(tf);

                JLabel l = new JLabel(s);
                l.setOpaque(true);
                l.setBackground(Color.YELLOW);
                gui.add(l);

                JOptionPane.showMessageDialog(null, gui);
            }
        };
        // Swing GUIs should be created and updated on the EDT
        // http://docs.oracle.com/javase/tutorial/uiswing/concurrency
        SwingUtilities.invokeLater(r);
    }
}

“我想知道是否有办法在不使用JLable或JtextField的情况下打印文本”

您始终可以在JPanel中绘制文本。 需要做更多的工作,但你可以用你的文字做更多的事情。

public class TextPanel extends JPanel{
    protected void paintComponent(Graphics g){
        super.paintComponent(g);
        g.drawString("Hello, Stackoverflow!", xLocation, yLocation);
    }
}

请参见使用图形绘制文本

你可以用这个!

JTextField textField = new JTextField();
textField.setBorder(javax.swing.BorderFactory.createEmptyBorder());

这会将空边框设置为TextField

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM