gpt4 book ai didi

java - 在 Java Swing 中与 BoxLayout 作斗争

转载 作者:行者123 更新时间:2023-12-01 10:36:36 27 4
gpt4 key购买 nike

怎么了,伙计们,我正在努力理解如何在 java swing 中实现 BoxLayout 或任何布局。我一直在看关于 Oracle 和其他人的教程,但我就是无法让它工作。这是大学的作业,所以我希望不要直接给我解决方案,但也许只是为我指明正确的方向。我认为问题是我的代码与教程中的代码不同,所以我不确定什么在哪里。

import javax.swing.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.BoxLayout;


class Window extends JFrame implements ActionListener
{


JPanel panel = new JPanel();
JTextField input = new JTextField(10);
JButton but1 = new JButton ("Convert");
JLabel label = new JLabel();
JTextArea output = new JTextArea(1, 20);



public static void main(String[] args)
{
Window gui = new Window();
String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday"};

}


public Window()
{
super("Swing Window");
setSize(500, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
panel.add(input);
but1.addActionListener(this);
add(panel);
panel.add(output);
label.setText ("please enter celsius to be converted to Fahrenheit");
panel.add(but1);
panel.add(label);
setVisible(true);
}

public void actionPerformed(ActionEvent event)
{
String inputStr = input.getText();
inputStr = inputStr.trim();
double input = Double.parseDouble(inputStr);
double fahrenheit = input * 1.8 + 32;


if (event.getSource() == but1)
{
output.setText("Here is degrees celsius " + input + " converted `to Fahrenheit: " + fahrenheit);`
}
}


}

有可执行代码。

最佳答案

我浏览了你的代码,但没有执行它。正如其他人在评论中已经提到的那样,描述该程序的功能以及您期望/希望它做什么对您很有帮助。否则我们只是猜测什么是错误的,什么是正确的。

根据我对您代码的阅读,我认为您没有看到任何显示。 更正:您确实调用了 add();正如您最近的评论之一所示以下是一些注释/解释:

  • 您的方法 addComponentsToPane() 从未被调用,因此您从未创建任何 BoxLayout 对象
  • 建议:变量名以小写开头,并且不要将变量命名为与类相同;阅读代码时很容易造成困惑。因此不要将参数命名为 Window
  • 您的方法 addComponentsToPane()(如果被调用)会创建一个 Layout 对象并将其设置在传递给它的组件上,但实际上并不添加任何组件。因此,这个名称具有误导性。
  • JFrame 的内容 Pane 有 BorderLayout默认情况下。当在没有任何附加约束的情况下添加组件时,BorderLayout 选择按特定顺序放置组件(从 BorderLayout.CENTER 开始)。请参阅documentation of the JFrame class其中显示默认为 BorderLayout。
  • 一个JPanel ,当使用默认构造函数创建时有 FlowLayout默认情况下。
  • 由于您的程序从未更改面板的布局管理器,因此这就是您观察到的从左到右的流程。
  • 您希望在向面板添加组件之前将其布局设置为垂直 BoxLayout

关于java - 在 Java Swing 中与 BoxLayout 作斗争,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34683316/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com