Đối với lớp CSE 205 (Java programming 2) của tôi, chúng ta phải thiết kế một applet GUI thực sự đơn giản. Tôi khá quen thuộc với Swing, đã sử dụng nó cho một vài dự án của riêng tôi trước khi bàn tay. Tôi đã thiết kế chương trình với vài vấn đề, và có vẻ hoàn hảo trên máy tính của tôi khi chạy từ Eclipse:Tại sao giao diện người dùng của tôi bị mất định dạng khi chạy trong trình duyệt so với chạy trên máy tính của tôi (Java Swing)?
Nhưng khi tôi đã nộp nó trực tuyến, nơi mà nó chạy trong trình duyệt, giao diện người dùng được nghiêm trọng điên, trở lại để mặc định:
tôi đã quen với việc sử dụng GridBagLayout do đó là sự đơn giản. Đó là những gì tôi đang sử dụng ở đây. Các lớp CreatePanel và SelectPanel (như được thấy trong hình ảnh đầu tiên) đều mở rộng JPanel (theo giáo sư của tôi). Tôi đặt từng sử dụng:
this.setLayout(new GridBagLayout());
Và và các thành phần với nhau theo:
//Call the method addItem() to add the create button to the panel
addItem(this, createB,0,2,2,1,defaultInset,GridBagConstraints.CENTER);
//-------
public void addItem(JPanel p, JComponent c, int x, int y, int width, int height, int[] inset, int align)
{
GridBagConstraints gc = new GridBagConstraints();
gc.gridx = x;
gc.gridy = y;
gc.gridwidth = width;
gc.gridheight = height;
gc.weightx = 0;
gc.weighty = 0;
gc.insets = new Insets(inset[0],inset[1],inset[2],inset[3]);
gc.anchor = align;
gc.fill = GridBagConstraints.NONE;
p.add(c, gc);
}
Bất cứ ai có bất cứ ý tưởng về những gì có thể xảy ra? Xem xét hơn một nửa thời gian của tôi đã được dành cho việc bố trí nhìn đúng, tôi rất thích một sửa chữa đơn giản. Tôi có thể đăng thêm mã nếu cần. Cảm ơn mọi lời đề nghị.
--EDIT--
Được rồi tôi đã thực hiện một chút chơi xung quanh dựa trên đề xuất @ MadProgrammer của. Tôi nghĩ tôi đã thu hẹp lại vấn đề ở đâu.
Đây là mã tôi đang sử dụng để thiết lập kích thước của JTextField ở bên phải của nhãn "Nhập Loại Pet:
petTypeTF = new JTextField("");
petTypeTF.setPreferredSize(new Dimension(125, 60));
Bây giờ nếu tôi thay đổi mã để bất cứ điều gì khác, như thiết lập các số cột:
petTypeTF = new JTextField("",12);
petTypeTF.setPreferredSize(new Dimension(125, 60));
tôi nhận được một giao diện người dùng trông giống với một trong khi tôi gửi nó trực tuyến một cái gì đó để làm với thiết lập số cột dường như được bắt vít nó lên Điều này giúp thu hẹp nó xuống cho.. ai?
Rất nhiều lý do. Tôi tưởng tượng rằng các trường không được tạo với các cột mặc định (và các hàng trong trường hợp của vùng văn bản). Có thể là trình quản lý bố cục được sử dụng để đặt ngăn lên tab ... – MadProgrammer
Tôi sợ một thứ như thế. Bạn có bất cứ gợi ý nào mà tôi có thể thử không? – rphello101
Thật khó với một ví dụ để làm việc với, nhưng ... đảm bảo rằng các thành phần văn bản được tạo với các giá trị cột/hàng. Sử dụng 'BorderLayout' để đặt thành phần vào tab và cung cấp trọng số tốt hơn cho các ràng buộc đối với vùng văn bản – MadProgrammer