求大神帮个忙,为什么长方形没有显示在GUI里?哪里出错了?
public class SelectSeat {
static JFrame frame;
public JPanel createContentPane() throws IOException
{
JPanel totalGUI = new JPanel();
RectDraw rect= new RectDraw();
rect.setPreferredSize(new Dimension(30,25));
totalGUI.setLayout(null);
totalGUI.setBackground(Color.WHITE);
totalGUI.add(rect);
return totalGUI;
}
void setVisible(boolean b) {
// TODO Auto-generated method stub
}
static void createAndShowGUI() throws IOException
{
JFrame.setDefaultLookAndFeelDecorated(true);
frame = new JFrame("Seat Selection");
//Create and set up the content pane.
SelectSeat demo = new SelectSeat();
frame.setContentPane(demo.createContentPane());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(535, 520);
frame.setLocation(500,220);
frame.setVisible(true);
}
private static class RectDraw extends JPanel
{
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawRect(29,550,300,250);
g.setColor(Color.GRAY);
g.fillRect(20,5,330,25);
g.setColor(Color.BLUE);
g.drawString("Movie Sceen", 150, 20);
}
}
}
Sebabnya adalah masalah yang disebabkan oleh
totalGUI.setLayout(null);
, saya rasa pelik pada mulanyaKemudian saya merujuk kepada soalan ini http://stackoverflow.com/questions/12308764/java-setlayoutnull
Penyelesaian, seseorang bukan menggunakan
setLayout(null);
tetapi menggunakan pengurus susun aturAtau gunakan idea dalam salah satu jawapan kepada soalan di atas untuk menambah terikat pada objek yang ingin anda paparkan untuk mengelakkan julat paparan daripada tidak dapat dilihat dengan mata kasar