我正在创建Swing项目,但我想知道是否有任何方法可以在不使用JLabel
或JTextField
的情况下打印文本。
我发现文本字段可能是一个但不像JLabel
那样整洁。 (文本周围有边框)。
可以删除文本字段中的边框吗?或者我可以使用其他方法吗?
答案 0 :(得分:1)
您似乎在寻找JComponent.setBorder(null)
。然而,有很多方法可以达到你想要的效果..
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);
}
}
答案 1 :(得分:1)
“我想知道是否有办法在不使用JLable或JtextField的情况下打印文本”
您始终可以在JPanel中绘制文本。需要做更多的工作,但你可以用你的文字做更多的事情。
public class TextPanel extends JPanel{
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.drawString("Hello, Stackoverflow!", xLocation, yLocation);
}
}
答案 2 :(得分:0)
你可以用它!
JTextField textField = new JTextField();
textField.setBorder(javax.swing.BorderFactory.createEmptyBorder());
这会将空边框设置为TextField