当前位置: 首页 > 面试题库 >

JFRAME上的JAVA定位标签

呼延俊良
2023-03-14
问题内容

我需要绘制一个水平直方图,并且按如下所示设置直方图的标签,

public static void drawVertical(){

 JFrame frame = new JFrame("Horizontal Histogram");
 frame.setSize(300, 300);
 frame.setVisible(true);
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


 JLabel label_01=new JLabel("0-29");  
 label_01.setAlignmentX(-290);
 label_01.setAlignmentY(290);

 JLabel label_02=new JLabel("30-39"); 
 label_02.setAlignmentX(-290);
 label_02.setAlignmentY(270);

 JLabel label_03=new JLabel("40-69"); 
 label_03.setAlignmentX(-290);
 label_03.setAlignmentY(250);

 JLabel label_04=new JLabel("70-100"); 
 label_04.setAlignmentX(-290);
 label_04.setAlignmentY(230);

 frame.add(label_01);
 frame.add(label_02)
 frame.add(label_03);
 frame.add(label_04);
 }

有人能找出这里有什么问题吗?
为什么不显示其他标签?


问题答案:

这个问题的答案的问题是,你不应该使用BorderLayout(这在JFrame默认情况下使用),而是使用GridLayout。这样
您就可以将添加JLabelsJFrame。一个示例如下所示:

EventQueue.invokeLater(() -> {
    JFrame frame = new JFrame("Stackoverflow | Question");
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.setSize(300, 300);
    frame.setLocationRelativeTo(null);
    // This is the important line. This will Change the layout to a GridLayout.
    frame.setLayout(new GridLayout(4, 1));
    frame.add(new JLabel("0-29"));
    frame.add(new JLabel("30-39"));
    frame.add(new JLabel("40-69"));
    frame.add(new JLabel("70-100"));
    frame.setVisible(true);
});


 类似资料:
  • 我需要一个帮助来定位一个JPanel在一个特定的位置到一个Jframe。 我在一个扩展JFrame的类中有一个JPanel,我需要将这个JPanel放在一个特定的x,y位置。 是这样的: 我不需要一个LayoutManager的位置的JPanel,因为我需要把JPanel在一个特定的位置(像150,150的例子)。但是如果我panel.set位置(150,150),就像上面的代码一样,什么都不会发

  • 问题内容: 我希望在Java Swing桌面应用程序中有一个自定义的标题栏。最好的方法是什么?通过在JFrame的构造函数中使用以下代码,可以使用“标题栏”: 但是,如何自定义呢?是否可以覆盖任何 UI委托 ,还是必须从头开始实现自己的标题栏? 我想要类似Lawson Smart Office的东西: 问题答案: 您可以在Substance外观(镜像源)中看到一个示例。在代码中搜索Substanc

  • 我正在尝试将国际象棋引擎作为一个有趣的项目,但为此我真的很想制作一个GUI。问题是我没有这方面的经验,所以我有点卡住了。我设法创建了棋盘,但有两件事我不知道如何做,在网上看只会让我更加困惑。 > 如何根据电路板在计算机内存中的外观,将这些块添加到电路板中。(例如,如果引擎进行了移动,我希望该移动也发生在gui上,我将如何将两者联系起来?) 我如何判断用户在gui中单击的是哪个方块? 这是我到目前为

  • 我想为我的应用程序实现DnD,以仅接受某些扩展名的文件(例如wrl)。如果文件将被接受,我想将光标更改为拖动光标,并在拖放错误扩展名的文件时恢复为正常光标。 我一直在遵循以下教程/示例从http://docs.oracle.com/javase/tutorial/uiswing/dnd/toplevel.html 我所做的更改是在can导入函数中 当我在不同的文件中拖动时,这种行为是正确的。但是,

  • 我可以使用XPath//form//input[@type='radio']或name=gender属性来定位收音机,但是,我不知道如何定位收音机的标签,因为它们没有任何label标记。 我尝试了getText(),但返回为NULL。感谢您关于如何定位标签的建议和选择。

  • 描述 (Description) 您可以将标签放在输入的left或right 。 要在右侧放置标签,请使用.text-right或.float-right类。 要在左侧放置标签,请使用.text-left或.float-left类。 您可以添加.middle类以将标签垂直对齐其输入。 例子 (Example) 以下示例演示了在Foundation中使用label positioning 。 <ht