2013-03-01 37 views
7

Tôi có một JFrame chính có tất cả các loại bảng trong đó cho các chức năng khác nhau và mọi người có thể tính toán mọi thứ trong đó. Tôi muốn mở một JFrame mới khi người dùng nhấn nút tính toán đầu tiên và đóng vai trò như một cửa sổ Output (Simlar to SPSS output windows nếu bạn đã quen với chúng).Mở một JFrame mới

JFrame mới sẽ hoàn toàn tách biệt và sẽ có thanh menu riêng ... Một JDialog đơn giản không phải là cách để đi đến đây.

+0

Vì vậy, vấn đề là những gì? chỉ làm cho 'JFrame' hiển thị khi nút tính toán đầu tiên được nhấp .. !!! –

+0

[http://stackoverflow.com/questions/1655294/java-swing-multiple-windows][1] Đây là một chuỗi khác sẽ trả lời câu hỏi của bạn. [1]: http://stackoverflow.com/questions/1655294/java-swing-multiple-windows – Joe

Trả lời

9
  • không thể cưỡng lại, đơn giản không đồng ý với câu trả lời JFrame frame = new JFrame(); và frame.setVisible(true);

Tôi muốn mở một JFrame mới khi người dùng chạm vào nút đầu tiên tính toán và đóng vai trò như một cửa sổ Output (Simlar vào cửa sổ đầu ra SPSS nếu bạn đã quen thuộc với họ).

  • don't do that, create only two JFrames, tái sử dụng 2. JFrame bằng cách sử dụng getContentPane.removeAll(), cho những hành động khác từ JButton

  • thì tất cả vòng đời sẽ chỉ khoảng setVisible(true)/setVisible(false)

  • thay đổi DefaultCloseOperations để HIDE_ON_CLOSE

The New JFrame sẽ hoàn toàn tách biệt và sẽ có menu riêng của mình . Một JDialog đơn giản không phải là cách để đi đến đây.

  • whats sai với JDialog, chỉ có một nút trong Toolbar trong so sánh với ba nút ở JFrame, đơn giản không đồng ý,

cửa sổ Output (Simlar để SPSS cửa sổ đầu ra nếu bạn đã quen thuộc với số chúng).

  • sử dụng SwingWorker hoặc Runnable#Thread (bắt buộc quấn vào invokeLater) cho giá trị get cho JComponents đặt vào JDialog, nếu tất cả các thay đổi được thực hiện cuộc gọi JDialog.setVisible(true) quấn vào invokeLater()
10
JFrame newFrame = new JFrame(); 
newFrame.setVisible(true); 
+3

vui lòng quấn setVisible (true); vào invokeLater – mKorbel

+1

@mKorbel: Tại sao bạn nghĩ anh ấy không phải là chủ đề giao diện người dùng? – SLaks

+0

@SLaks, Tại sao bạn nghĩ rằng anh * là * trên chuỗi giao diện người dùng? – mre

4

tôi có lẽ mis hiểu câu hỏi của bạn nhưng

JFrame frame = new JFrame(); 
frame.setVisible(true); 
+1

không phải vấn đề tương tự, hãy xem nhận xét câu trả lời bởi sự uy nghi của mình @SLaks – mKorbel

Các vấn đề liên quan