我写了我的程序,但我不明白为什么它可能 可以写
frame.getContentPane().add(label);
我对以上代码的方法顺序感到困惑,这些代码与下面的完整代码相对应。
add方法是否调用label对象,然后调用getContentPane方法到frame对象。任何人都可以启发我这个概念。如果我能更好地完全理解java,那将会有很大帮助。 :)
JFrame frame = new JFrame ("HelloWorldSwing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// set the label
JLabel label = new JLabel("Hello world");
frame.getContentPane().add(label);
frame.setVisible(true);
答案 0 :(得分:4)
你没有“调用一个对象”,你调用一个对象的实例方法(在这种情况下)。 add()
方法是框架内容窗格的一种方法,(在本例中)采用JLabel
参数。
frame
的{{1}}方法,然后...... getContentPane()
方法,传递... add()
实例(JLabel
变量)只需从左到右阅读。
答案 1 :(得分:3)
frame.getContentPane()
返回JFrame保存的Container(实际上是JPanel),充当其contentPane。然后add(...)
方法将JLabel添加到contentPane。订单是从左到右。
这相当于:
JFrame frame = new JFrame ("HelloWorldSwing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = new JLabel("Hello world");
Container contentPane = frame.getContentPane();
contentPane.add(label);