gpt4 book ai didi

java - GridBagLayout 将所有对象放在同一个单元格中

转载 作者:行者123 更新时间:2023-12-02 06:05:05 25 4
gpt4 key购买 nike

我正在使用 gridbaglayout 作为布局管理器编写一个快速天气应用程序。然而,gridbag 拒绝将 JLabel 对象放入定义的单独单元格中,而是将它们全部放入一个单元格中。

public class WeatherApp extends JFrame {

private JLabel jDayOfTheWeek;
RSSReader rss = null;
private JLabel jWindDirectionToday;
private JLabel jWindSpeed1;
private JLabel jMaxTemp1;
private JLabel jMinTemp1;
private JLabel jVisibility1;
private JLabel jPressure1;
private JLabel jHumidity1;
private JLabel jWindSpeed2;
private JLabel jMaxTemp2;
private JLabel jMinTemp2;
private JLabel jVisibility2;
private JLabel jPressure2;
private JLabel jHumidity2;
private JLabel jWindSpeed3;
private JLabel jMaxTemp3;
private JLabel jMinTemp3;
private JLabel jVisibility3;
private JLabel jPressure3;
private JLabel jHumidity3;

public WeatherApp() {


this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Detailed weather");
this.setSize(320,480);
GridBagLayout myLayout = new GridBagLayout();
JPanel mainFrame = new JPanel(myLayout);
rss = new RSSReader();
GridBagConstraints c = new GridBagConstraints();



c.gridwidth = 4;
c.gridheight = 10;

jDayOfTheWeek = new JLabel("lelel");
jDayOfTheWeek.setText(this.getDayOfTheWeek());
c.anchor = GridBagConstraints.FIRST_LINE_START;
c.gridx = 0;
c.gridy = 0;

c.weightx = 1;
c.weighty = 1;


mainFrame.add(jDayOfTheWeek, c);



jWindDirectionToday = new JLabel(rss.getFirstDay().getWindDirection());
c.anchor = GridBagConstraints.CENTER;
c.gridx = 2;
c.gridy = 2;
c.weightx = 1;
c.weighty = 1;
mainFrame.add(jWindDirectionToday, c);


jWindSpeed1 = new JLabel(Integer.toString(rss.getFirstDay().getWindSpeed()) + "mph");
c.gridx = 3;
c.gridy = 3;
c.weightx = 1;
c.weighty = 1;
mainFrame.add(jWindSpeed1, c);


jMaxTemp1 = new JLabel(Integer.toString(rss.getFirstDay().getMaxTemp()) + "C");
c.gridx = 4;
c.gridy = 4;
c.weightx = 1;
c.weighty = 1;
mainFrame.add(jMaxTemp1, c);



this.add(mainFrame);



}

public String getDayOfTheWeek() {
Calendar c = Calendar.getInstance(TimeZone.getDefault());

Date currentDate = c.getTime();
return new SimpleDateFormat("EEEE").format(currentDate);



}

public static void main(String[] args) {
WeatherApp myapp = new WeatherApp();
myapp.setVisible(true);

}

现在,如果您查看代码,JLabels 已分配给不同的网格位置:0,0 2,2 3,3 和 4,4,但是当我编译和执行所有网格位置时的结果将被忽略,但是如果在锚定这些约束时,我使用 gridbagconstraints 的常量。

最佳答案

删除下一行,您的标签将位于正确的位置:

c.gridwidth = 4;
c.gridheight = 10;

关于java - GridBagLayout 将所有对象放在同一个单元格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22351534/

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