如何获取当前标签的宽度
how get current label's width
有一个面板。我在该面板上添加了 JLabel,并想知道该 JLabel 的大小。
这里是简单的代码:
import java.awt.Dimension;
import java.awt.Label;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
class MyPanel extends JPanel {
MyPanel() {
this.setPreferredSize(new Dimension(300, 300));
Label myLabel = new Label("ddddddddd");
this.add(myLabel);
System.out.println(myLabel.getPreferredSize().width);
System.out.println(myLabel.getSize().width);
System.out.println(myLabel.getMinimumSize().width);
System.out.println(myLabel.getMaximumSize().width);
}
}
class MyFrame extends JFrame {
MyFrame() {
this.setTitle("Test");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(new MyPanel());
this.pack();
this.setVisible(true);
}
}
public class Text {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new MyFrame();
}
});
}
}
结果不是我所期望的:
0.0
0.0
0.0
32767.0
在其他一些程序中,我使用 "getPreferredSize().width" 并且收到了正确的结果,但不幸的是,我现在手头没有工作代码。
有人可以解释为什么 "getPreferredSize().width" 我收到零吗?我怎样才能得到当前标签的宽度?
使用java.swing.JLabel
代替java.awt.Label
JLabel myLabel = new JLabel("ddddddddd");
输出:
63
0
63
63
有一个面板。我在该面板上添加了 JLabel,并想知道该 JLabel 的大小。
这里是简单的代码:
import java.awt.Dimension;
import java.awt.Label;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
class MyPanel extends JPanel {
MyPanel() {
this.setPreferredSize(new Dimension(300, 300));
Label myLabel = new Label("ddddddddd");
this.add(myLabel);
System.out.println(myLabel.getPreferredSize().width);
System.out.println(myLabel.getSize().width);
System.out.println(myLabel.getMinimumSize().width);
System.out.println(myLabel.getMaximumSize().width);
}
}
class MyFrame extends JFrame {
MyFrame() {
this.setTitle("Test");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(new MyPanel());
this.pack();
this.setVisible(true);
}
}
public class Text {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new MyFrame();
}
});
}
}
结果不是我所期望的:
0.0
0.0
0.0
32767.0
在其他一些程序中,我使用 "getPreferredSize().width" 并且收到了正确的结果,但不幸的是,我现在手头没有工作代码。
有人可以解释为什么 "getPreferredSize().width" 我收到零吗?我怎样才能得到当前标签的宽度?
使用java.swing.JLabel
代替java.awt.Label
JLabel myLabel = new JLabel("ddddddddd");
输出:
63
0
63
63