2012-03-08 69 views
5

Tôi muốn có một cửa sổ đồ họa riêng biệt (cùng với một mặt phẳng tọa độ riêng biệt) bên trong cửa sổ lớn hơn bằng cách sử dụng java.awt/javax.swing, tôi đã vẽ picture để cho bạn biết ý tôi .Vẽ cửa sổ trong JFrame

Tôi không có ý tưởng làm thế nào để làm điều này, ném một số loại văn học với tôi rằng tôi có thể đọc để hiểu điều này tốt hơn sẽ thực sự tuyệt vời, một giải pháp cho vấn đề của tôi cùng với đó sẽ là tuyệt vời.

PS. Tôi đã không thực sự cố gắng bất cứ điều gì, vì tôi không có ý tưởng gì để thử.

+2

Bạn thực sự cần phải đi đến hướng dẫn Swing và bắt đầu đọc. Đọc trên JFrames, JPanels và vẽ bằng Swing. Điều đó sẽ cho bạn một số ý tưởng hay về nơi bắt đầu. Bạn có thể tìm thấy các hướng dẫn như là một phần của hướng dẫn Java: [Chỉ số thực sự lớn] (http://docs.oracle.com/javase/tutorial/reallybigindex.html). Bỏ phiếu để đóng câu hỏi này là quá rộng và mơ hồ đối với StackOverflow. –

+0

Ai đó đã đề cập đến sử dụng khung nội bộ - ý tưởng tồi. Thay vào đó, chỉ cần sử dụng JPanel để vẽ bằng cách ghi đè phương thức paintComponent của nó và đặt vào JPanel của bạn bằng cách sử dụng trình quản lý bố cục phù hợp, đó là tất cả. Một lần nữa, các hướng dẫn sẽ giải thích tất cả điều này cho bạn. –

+0

Mô tả tuyệt vời (sơ đồ) BTW. Một bức tranh vẽ một ngàn chữ, và hình ảnh đó là <11Kb. :) –

Trả lời

4

Tôi khuyên bạn nên tải về NetBeans để bắt đầu, vì nó là IDE dễ dàng nhất cho thiết kế UI tôi biết.

  1. Bắt đầu tạo khung chính cho ứng dụng của bạn.
  2. Thêm tất cả các nút bạn cần và định vị chúng như trong ảnh của bạn trên khung chính.
  3. Thêm JPanel vào khung của bạn và gọi nó là một cái gì đó như drawingCanvasPanel. Bảng điều khiển này sẽ là khu vực vẽ. Đừng quên ghi đè lên phương thức painComponent của Panel, trong đó bạn sẽ vẽ các bản vẽ và hình dạng tùy chỉnh của mình bằng cách sử dụng bảng điều khiển Graphics.
+3

+1 cho NetBeans. @Johan: Đừng chống lại sự quyến rũ của trình soạn thảo GUI cho đến khi bạn hiểu [bố cục] (http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html). – trashgod

+0

Âm thanh đủ đơn giản, tôi sẽ google xung quanh một chút để tìm hiểu thêm. @trashgod: Vâng, đó là khá nhiều những gì tôi sẽ làm anyway (sử dụng bố cục). Về lời khuyên của Netbeans: Cảm ơn nhưng tôi sẽ ở lại với Emacs, đó là những gì tôi đã quen và nó hoạt động đủ tốt. – Johan

+0

@Johan Vui mừng nó đã giúp :) Chúc may mắn với Emacs, không có cách nào tốt hơn để hiểu bố trí khác ngoài chơi với mã bố cục thô (thay vì IDE làm tất cả công việc cho bạn :)) – GETah

-1

Bạn có thể sử dụng nội Frames, cho làm thế nào để sử dụng nó, xem official tutorial

+0

Không, đây chắc chắn không phải là tình huống mà các khung bên trong nên được sử dụng. JPanels lồng nhau có, nhưng không có lý do gì để tạo khung nội bộ. –

+0

Anh ta muốn một cửa sổ bên trong một cửa sổ khác, như tôi biết, khung bên trong làm điều đó. –

+0

Xin lỗi nếu bạn hiểu lầm, tôi không tìm kiếm một cửa sổ bên trong cửa sổ (với các nút đóng và ý tôi là vậy), những người khác dường như đã hiểu ý tôi. Dù sao cũng cảm ơn bạn! – Johan

4

Tôi sẽ ghi đè paintComponent() trong một JPanel ở bên trái, như được thảo luận here. A JPanel của JButton trong một BoxLayout có thể đi bên phải, như được hiển thị here. Xem thêm ví dụ liên quan, LinePanel.

+0

Cũng xem xét ['JFreeChart' ] (http://stackoverflow.com/tags/jfreechart/info). – trashgod

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