Tôi là một người mới bắt đầu java và cho dự án đầu tiên của tôi, tôi bắt đầu xây dựng một trò chơi Độc quyền.Các vấn đề về đồ họa Java
Tôi đang tạo GUI bằng SWING bằng phương pháp Đồ họa.
Hai vấn đề xuất hiện mà tôi không thể tìm thấy câu trả lời.
Điều đầu tiên là dường như tôi không thể đặt màu nền cho JPanel mà trước đây tôi đã thực hiện theo cách tương tự trong một JPanel khác trong cùng một dự án.
Điều thứ hai là tôi nhận được NullPointerException
khi cố gắng thêm hình ảnh. Tôi đã quản lý để khắc phục lỗi này với try/catch
nhưng có vẻ như Đồ họa sẽ không sơn. Mặc dù tôi đã sử dụng cùng một phương pháp để tải và thêm hình ảnh trong một JPanel trước đó và nó đã hoạt động.
Tôi nên đề cập rằng JFrame của tôi vào lúc này chứa 3 yếu tố mọi người trong đó có các lớp riêng biệt và được thêm vào thông qua BorderLayout().
Đây là mã cho lớp đó đang tạo ra vấn đề:
public class MonopolyBoard extends JPanel{
Image atlantic;
MonopolyBoard() {
this.setBorder(new EtchedBorder());
this.setBackground(new Color((80), (180), (210))); //this code dosent work
//this throws exception without try catch
try{
ImageIcon a = new ImageIcon(this.getClass().getResource("../Card/Atlantic Ave.jpg"));
atlantic = a.getImage();
}
catch(NullPointerException e){}
}
public void paint(Graphics g){
}
Graphics2D g2 = (Graphics2D) g;
//this code should draw the image but it dosent
g2.drawImage(atlantic, 100, 100, null);
g.drawImage(atlantic, 100, 100, this);
};
}
Đừng gõ 'thử/catch' đó. Đăng stacktrace. –
"Chương trình Swing nên ghi đè' paintComponent() 'thay vì ghi đè' paint() '." - [Vẽ trong AWT và Swing: Phương pháp vẽ] (http://java.sun.com/products/jfc/tsc/ bài viết/painting/index.html # callbacks). – trashgod
"điều này ném ngoại lệ mà không thử bắt" - điều này là không chính xác. Nếu khối không ném một ngoại lệ, nó làm như vậy bất kể thử/bắt. Khối try/catch của bạn làm gì là _hide_ ngoại lệ đó. Mà, đến lượt nó, làm cho nó khó mà không thể gỡ lỗi. Bạn cần phải hiểu _why_ rằng ngoại lệ được ném, không giấu nó dưới tấm thảm. – Mat