Java 在GUI上创建边框
我创建了这个图形界面,缺少的是“个人信息”边框。我知道,Java 在GUI上创建边框,java,swing,user-interface,Java,Swing,User Interface,我创建了这个图形界面,缺少的是“个人信息”边框。我知道,setboorder(BorderFactory.createTitledBorder(“PERSONAL INFORMATION”)创建了一个边框,但我如何将标题定位到左上角,并输入正确的尺寸,以便在不使用布局管理器的情况下,线条不会进入按钮下方。非常感谢。 - 这个演示示例展示了所有类型的边框。我想是的 对你有帮助 - 这个演示示例展示了所有类型的边框。我想是的 对你有帮助 默认情况下,标题为顶部/左侧,边框插入由组件
setboorder(BorderFactory.createTitledBorder(“PERSONAL INFORMATION”)
创建了一个边框,但我如何将标题定位到左上角,并输入正确的尺寸,以便在不使用布局管理器的情况下,线条不会进入按钮下方。非常感谢。-
-
-
-
默认情况下,标题为顶部/左侧,边框插入由组件
getPreferred/Miniumum/MaximumSize
方法自动计算,无需使用布局管理器。“那就是你失去我的地方。javagui可能必须在许多平台上工作,在不同的屏幕分辨率上&使用不同的plaf。因此,它们不利于部件的精确放置。若要为一个健壮的GUI组织组件,请改为使用布局管理器,或者使用布局填充和边框。@andrewhompson我们不允许使用任何布局管理器,我们必须通过计算位置和大小手动布局每个组件。我希望我们被允许,这样做会更容易。”…不使用布局管理器。”我可以告诉你如何像。。这符合要求吗?“我们不允许使用任何布局管理器”,这是非常不合逻辑的,如果是老师指定的,他们应该被鞭打。如果雇主指定,找一份新工作。即使有“自定义”布局管理器,它也是“使用布局管理器”。当您将组件布局到适合字体大小、屏幕分辨率等的位置时,您将有足够的逻辑证明将该逻辑放入布局管理器是合理的!默认情况下,标题为上/左,边框插入由componentsgetPreferred/Miniumum/MaximumSize
方法自动计算……而不使用布局管理器。“这就是我失去的地方。”。javagui可能必须在许多平台上工作,在不同的屏幕分辨率上&使用不同的plaf。因此,它们不利于部件的精确放置。若要为一个健壮的GUI组织组件,请改为使用布局管理器,或者使用布局填充和边框。@andrewhompson我们不允许使用任何布局管理器,我们必须通过计算位置和大小手动布局每个组件。我希望我们被允许,这样做会更容易。”…不使用布局管理器。”我可以告诉你如何像。。这符合要求吗?“我们不允许使用任何布局管理器”,这是非常不合逻辑的,如果是老师指定的,他们应该被鞭打。如果雇主指定,找一份新工作。即使有“自定义”布局管理器,它也是“使用布局管理器”。当您将组件布局到适合字体大小、屏幕分辨率等的位置时,您将有足够的逻辑证明将该逻辑放入布局管理器是合理的!
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
class BorderTest extends JFrame
{
public BorderTest()
{
setTitle("Border Test");
setSize(450, 450);
JPanel content = (JPanel) getContentPane();
content.setLayout(new GridLayout(6,2));
JPanel p = new JPanel();
p.setBorder(new BevelBorder (BevelBorder.RAISED));
p.add(new JLabel("RAISED BevelBorder"));
content.add(p);
p = new JPanel();
p.setBorder(new BevelBorder (BevelBorder.LOWERED));
p.add(new JLabel("LOWERED BevelBorder"));
content.add(p);
p = new JPanel();
p.setBorder(new LineBorder (Color.black, 5));
p.add(new JLabel("Black LineBorder, thickness = 5"));
content.add(p);
p = new JPanel();
p.setBorder(new EmptyBorder (10,10,10,10));
p.add(new JLabel("EmptyBorder with thickness of 10"));
content.add(p);
p = new JPanel();
p.setBorder(new EtchedBorder (EtchedBorder.RAISED));
p.add(new JLabel("RAISED EtchedBorder"));
content.add(p);
p = new JPanel();
p.setBorder(new EtchedBorder (EtchedBorder.LOWERED));
p.add(new JLabel("LOWERED EtchedBorder"));
content.add(p);
p = new JPanel();
p.setBorder(new SoftBevelBorder (SoftBevelBorder.RAISED));
p.add(new JLabel("RAISED SoftBevelBorder"));
content.add(p);
p = new JPanel();
p.setBorder(new SoftBevelBorder (SoftBevelBorder.LOWERED));
p.add(new JLabel("LOWERED SoftBevelBorder"));
content.add(p);
p = new JPanel();
p.setBorder(new MatteBorder (new ImageIcon("spiral.gif")));
p.add(new JLabel("MatteBorder"));
content.add(p);
p = new JPanel();
p.setBorder(new TitledBorder ( new MatteBorder (new ImageIcon("spiral.gif")), "Title String"));
p.add(new JLabel("TitledBorder using MatteBorder"));
content.add(p);
p = new JPanel();
p.setBorder(new TitledBorder (new LineBorder (Color.black, 5), "Title String"));
p.add(new JLabel("TitledBorder using LineBorder"));
content.add(p);
p = new JPanel();
p.setBorder(new TitledBorder (
new EmptyBorder (10,10,10,10),
"Title String"));
p.add(new JLabel("TitledBorder using EmptyBorder"));
content.add(p);
setVisible(true);
}
public static void main(String args[])
{
new BorderTest();
}
}