所以我一直在編寫一個程序,該程序爲員工數據提供用戶輸入,並將其添加到ArrayList
中進行顯示。該程序工作正常,除了兩點。首先是我試圖驗證用戶輸入6美元到160美元之間的小時費率。下面是該代碼:驗證一個double值在兩個值和GUI之間打開兩個JFrames
try{
double r = Double.parseDouble(rate.getText());
if (r >= 6 && r <= 150){
test.setRate(r);
}
} catch(NumberFormatException e){
JOptionPane.showMessageDialog(null, "Sorry, hourly rate must be between $6 and $150.");
return;
}
它驗證它是這些值之間,但如果它是不是簡單地將其設置爲0,而不是顯示所述消息發送到所述用戶並返回的方法的。
我的第二個問題是更復雜一點,說實話我完全失去了。當我運行程序來測試或調試時,會打開兩個窗口。主窗口是完全空白的,但是控制着命令,而第二個窗口是我編寫的所有內容。我試圖搜索第二個JFrame
,它可能已被初始化,但找不到一個。我有更大的代碼量,並不太清楚,可能需要什麼,但這裏要說的是,我相信基於關閉行爲是造成該問題的代碼:
face = new JFrame();
face.setSize(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GroupLayout design = new GroupLayout(face.getContentPane());
face.setLayout(design);
face.setVisible(true);
design.setAutoCreateGaps(true);
design.setAutoCreateContainerGaps(true);
design.setVerticalGroup
(
design.createSequentialGroup()
.addGroup(design.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(fName)
.addComponent(first)
.addComponent(list))
.addGroup(design.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(lName)
.addComponent(last))
.addGroup(design.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(hWork)
.addComponent(hours))
.addGroup(design.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(hRate)
.addComponent(rate))
.addComponent(admin)
.addComponent(market)
.addComponent(account)
.addComponent(prod)
.addComponent(sales)
.addGroup(design.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(submit)
.addComponent(exit))
);
design.setHorizontalGroup
(
design.createSequentialGroup()
.addGroup(design.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(fName)
.addComponent(lName)
.addComponent(hWork)
.addComponent(hRate)
.addComponent(admin)
.addComponent(market)
.addComponent(account)
.addComponent(prod)
.addComponent(sales)
.addComponent(submit))
.addGroup(design.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(first)
.addComponent(last)
.addComponent(hours)
.addComponent(rate)
.addComponent(exit))
.addComponent(list)
);
}
除了創建單獨的控制,這是一切與GUI設計有關。任何有識之士都會在這裏受到歡迎!如果我忘了發帖子,我會很樂意這樣做。
*「驗證一個雙待兩個值之間。」 *'JSpinner'用'SpinnerNumberModel' *「..和GUI打開兩個JFrames」*參見[使用多個JFrames,好/壞實踐?](http://stackoverflow.com/q/9554636/418556)..有什麼問題嗎? – 2014-10-28 04:53:40
@AndrewThompson我不認爲OP想要第二幀,但沒有一個可運行的例子,它是不可能知道它來自哪裏... – MadProgrammer 2014-10-28 04:57:43
雖然我真的很喜歡使用JSpinner的想法(這將是一個有趣的功能)我必須驗證用戶的輸入。我在研究關於第二個窗口的問題時讀過那篇文章。實際上很難解釋。當我運行程序時,兩個窗口會自動運行,當我只打算一個。我不打算打開的那個是空白的,我看不到我告訴它打開的位置。 – 2014-10-28 05:02:31