簡體   English   中英

組件在JPanel和JFrame中被壓縮

[英]Components get squished in JPanel and JFrame

我正在嘗試為用戶創建一個GUI窗口,以便為我的程序輸入一些信息。 但是似乎無論我如何更改大小或位置,我的所有組件都被壓縮得比我想要的小得多。 有人可以指出我所缺少的嗎? 這是我嘗試過的:

          JFrame inputFrame = new JFrame();
          JPanel panel = new JPanel();
          inputFrame.setTitle("Create Event");
          inputFrame.setSize(500,400);

          JTextField eventName = new JTextField("Untitled event");
          JTextField eventStart = new JTextField();
          JTextField eventEnd = new JTextField();
          JButton save = new JButton("Save");

          JLabel selectedDate = new JLabel(MyCalendarTester.currentMonth + 1 + "/" + selectedDay + "/" + MyCalendarTester.currentYear);

          selectedDay = null;
          panel.setSize(450,300);
          eventName.setBounds(10, 10, 600, 50);
          panel.add(eventName);
          selectedDate.setBounds(10, 20, 50, 20);
          panel.add(selectedDate);
          panel.add(eventStart);
          eventStart.setBounds(100, 20, 50, 20);
          panel.add(eventEnd);
          eventEnd.setBounds(175, 20, 50, 20);
          panel.add(save);
          save.setBounds(250, 20, 60, 30);


          inputFrame.add(panel);
          inputFrame.setVisible(true);

JPanel的默認布局管理器是FlowLayout FlowLayout將以其首選大小顯示組件,這是應該顯示組件的方式。

您不應該嘗試為組件提供隨機大小,因為您不知道組件的最佳大小應該基於Font,OS等。

創建JTextField時,可以使用:

JTextField textField = new JTextField(10);

值10將使文本字段具有合理的首選大小。

JLabel和JButton的大小將由組件的文本確定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM