Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaSwing中,有没有任何方法可以在没有JLabel或JTextField的情况下显示文本?_Java_Swing_Jtextfield - Fatal编程技术网

在JavaSwing中,有没有任何方法可以在没有JLabel或JTextField的情况下显示文本?

在JavaSwing中,有没有任何方法可以在没有JLabel或JTextField的情况下显示文本?,java,swing,jtextfield,Java,Swing,Jtextfield,我正在创建Swing项目,但我想知道是否有任何方法可以在不使用JLabel或JTextField的情况下打印文本 我发现文本字段可能是一个,但它不像JLabel那样整洁。(文本周围有一个边框) 是否可以删除文本字段中的边框?或者我可以使用其他方法吗?您似乎在寻找。然而,有很多方法可以达到你想要的效果 不透明JLabel带有背景色 自定义绘制的组件 下面是两个标准组件的示例 import java.awt.*; import javax.swing.*; class TextFieldNoBor

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

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


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

您似乎在寻找。然而,有很多方法可以达到你想要的效果

  • 不透明
    JLabel
    带有背景色
  • 自定义绘制的组件
  • 下面是两个标准组件的示例

    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());
    

    这将为您的
    文本字段设置空边框

    看看这个[如何设置文本字段的样式,使其没有边框?][1][1]:我认为您可以覆盖绘制方法并在组件上绘制它。背景将是透明的,没有边框。我认为这就是您正在寻找的1)
    如果有任何方法可以在不使用JLable或JtextField的情况下打印文本。
    查看所有扩展的组件
    JTextComponent
    2)
    可以在文本字段中添加边框吗被删除?
    是的,这可能是90%的Swing程序员的某种疾病:当他们制作自己的组件时,他们总是扩展
    JPanel
    而不是
    JComponent
    。为什么?似乎有很多“繁重的工作”可以在几行代码中使用标签或文本字段来完成。好吧,OP并没有真正描述他们想要做什么。我只是简单地回答了上面引用的问题:)嗯,我是个新手,所以我的一个朋友给了我一个要完成的任务。我想他是想教我如何“画”一篇文章,而不仅仅是“打印”。谢谢大家:)