【问题标题】:Creating a Form manually手动创建表单
【发布时间】:2012-10-08 22:59:54
【问题描述】:

我正在尝试使用代码而不是设计器手动创建表单,我已经使用设计器创建了。

这是迄今为止我想出的手动代码,但我在并排对齐标签和文本字段时遇到问题

mport java.awt.*;
import javax.swing.*;
/**
 *
 * @author jackandjill
 */
public class summinup_copy extends JFrame
{
    private JLabel lblTitle, lblOctal, lblDecimal, lblMessage ;

private JTextField txtOctal, txtDecimal;

private JButton calculate_btn;




public  summinup_copy()       

{

JPanel panel = (JPanel)this.getContentPane();

panel.setLayout(new BorderLayout());

JPanel panCentre = new JPanel();

panCentre.setLayout(new GridLayout(3,3));

lblTitle = new JLabel("Area of Triangle");

lblTitle.setFont(new Font("Arial", 1, 20));

lblTitle.setHorizontalAlignment(JLabel.CENTER);

lblOctal = new JLabel("Octal");

lblOctal.setHorizontalAlignment(JLabel.CENTER) ;

//lblDecimal = new JLabel("Decimal");
//
//lblDecimal.setHorizontalAlignment(JLabel.CENTER);

lblMessage = new JLabel("Result will be displayed here");

lblMessage.setForeground(Color.red);

lblMessage.setHorizontalAlignment(JLabel.CENTER);

txtOctal = new JTextField("0", 5);

txtOctal.setHorizontalAlignment(JLabel.CENTER); 
//txtDecimal = new JTextField("0", 5);
//
//txtDecimal.setHorizontalAlignment(JLabel.CENTER);

calculate_btn = new JButton("Calculate Area");



//AHandlerClass aListener = new AHandlerClass() ;

//btnOtoD.addActionListener(aListener);

//btnDtoO.addActionListener(aListener);

panCentre.add(lblOctal);

//panCentre.add(lblDecimal);

panCentre.add(txtOctal);

//panCentre.add(txtDecimal);

panCentre.add(calculate_btn);

//panCentre.add(btnDtoO);

panel.add(lblTitle, BorderLayout.NORTH);

panel.add(lblMessage,BorderLayout.SOUTH);


panel.add(panCentre, BorderLayout.CENTER);

}

public static void main(String args[]) {

summinup_copy myGui = new summinup_copy();

myGui.setTitle("Bharath");

myGui.setSize(400, 200);

myGui.setVisible(true);
}

}

【问题讨论】:

  • 我会使用一个布局管理器,它更有可能尊重您的组件首选尺寸,就我个人而言,这意味着 GridBagLayout

标签: java user-interface layout jform


【解决方案1】:

正如您已经知道的那样,您必须在手动编写 Swing GUI 时使用 LayoutManagers。这里有一些链接可以帮助您确定哪个 LayoutManager 适合给定的外观:

http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

http://docs.oracle.com/javase/tutorial/uiswing/layout/using.html

为了在 JTextField 或其他组件旁边放置 JLabel,我通常使用 GridLayoutGridBagLayout。我发现要让组件看起来像我想要的那样需要大量的试验和错误。通常,您必须嵌入多层 JPanel 才能使其恰到好处。

【讨论】:

  • @noobprogrammer 你说的“设计师”是什么意思?
  • 哦,我的意思是没有设计师可以让整个过程变得更容易,比如 netbeans 之类的?顺便说一句,我确实在使用 Gridlayout,但仍然无法弄清楚如何像我在我的 OP..tks 中的屏幕截图那样整齐地获取表格。
  • @noobprogrammer 我很困惑...您问题的前两句话表明您已经知道如何使用 NetBeans 设计器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 1970-01-01
  • 2019-09-28
  • 2018-04-15
相关资源
最近更新 更多