首页上一页 1 下一页尾页 1 条记录 1/1页
关于Java入门经典第14章的一些问题
发表在Java图书答疑
2015-08-24
是否精华
是
否
版块置顶:
是
否
public class JTabbedTest extends JFrame{
private JTextArea textArea;
public JTabbedTest(){
super();
setTitle("选项卡");
setBounds(100,100,400,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JTabbedPane jtp=new JTabbedPane();
final JButton button=new JButton("按钮");
button.setBounds(20,20,40,20);
URL url1=JTabbedTest.class.getResource("1.png");
Icon icon=new ImageIcon(url1);
jtp.addTab("选项卡1",icon,button,"这里使用了按钮");
final JCheckBox checkbox=new JCheckBox("复选框");
jtp.addTab("选项卡2", null, checkbox, null);
URL url2=JTabbedTest.class.getResource("2.gif");
Icon icon2=new ImageIcon(url2);
jtp.setIconAt(1, icon2);
textArea =new JTextArea("文本域");
URL url3=JTabbedTest.class.getResource("3.gif");
Icon icon3=new ImageIcon(url3);
jtp.addTab("选项卡3", icon3, textArea, null);
jtp.setToolTipTextAt(2, "这里使用了文本框");
final JRadioButton radioButton=new JRadioButton("单选按钮");
URL url4=JTabbedTest.class.getResource("4.gif");
Icon icon4=new ImageIcon(url4);
jtp.addTab("选项卡4", icon4, radioButton, null);
jtp.setToolTipTextAt(3, "这里使用了单选按钮");
getContentPane().add(jtp, BorderLayout.CENTER);
}
public static void main(String[] args){
EventQueue.invokeLater(new Runnable() {
public void run() {
try{
JTabbedTest jtt=new JTabbedTest();
jtt.setVisible(true);
}catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
代码如上:
(1)EventQueue.invokeLater(new Runnable() {
public void run() {
try{
JTabbedTest jtt=new JTabbedTest();
jtt.setVisible(true);
}catch (Exception e) {
e.printStackTrace();
}
}
});
我对这段代码不是肯了解,第一:为什么要加入EventQueue呢?有什么好处 第二:这个属于匿名内部类吗? 第三new Runnable() {...}属于什么方法?
(2)super();这边的super();调用父类的方法有何作用?
(3)我把这句话getContentPane().add(jtp, BorderLayout.CENTER);改成
JFrame jf=new JFrame();
Container container=jf.getContentPane();
container.setLayout(null);
jf.add(jtp);
却不能用,为什么?
private JTextArea textArea;
public JTabbedTest(){
super();
setTitle("选项卡");
setBounds(100,100,400,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JTabbedPane jtp=new JTabbedPane();
final JButton button=new JButton("按钮");
button.setBounds(20,20,40,20);
URL url1=JTabbedTest.class.getResource("1.png");
Icon icon=new ImageIcon(url1);
jtp.addTab("选项卡1",icon,button,"这里使用了按钮");
final JCheckBox checkbox=new JCheckBox("复选框");
jtp.addTab("选项卡2", null, checkbox, null);
URL url2=JTabbedTest.class.getResource("2.gif");
Icon icon2=new ImageIcon(url2);
jtp.setIconAt(1, icon2);
textArea =new JTextArea("文本域");
URL url3=JTabbedTest.class.getResource("3.gif");
Icon icon3=new ImageIcon(url3);
jtp.addTab("选项卡3", icon3, textArea, null);
jtp.setToolTipTextAt(2, "这里使用了文本框");
final JRadioButton radioButton=new JRadioButton("单选按钮");
URL url4=JTabbedTest.class.getResource("4.gif");
Icon icon4=new ImageIcon(url4);
jtp.addTab("选项卡4", icon4, radioButton, null);
jtp.setToolTipTextAt(3, "这里使用了单选按钮");
getContentPane().add(jtp, BorderLayout.CENTER);
}
public static void main(String[] args){
EventQueue.invokeLater(new Runnable() {
public void run() {
try{
JTabbedTest jtt=new JTabbedTest();
jtt.setVisible(true);
}catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
代码如上:
(1)EventQueue.invokeLater(new Runnable() {
public void run() {
try{
JTabbedTest jtt=new JTabbedTest();
jtt.setVisible(true);
}catch (Exception e) {
e.printStackTrace();
}
}
});
我对这段代码不是肯了解,第一:为什么要加入EventQueue呢?有什么好处 第二:这个属于匿名内部类吗? 第三new Runnable() {...}属于什么方法?
(2)super();这边的super();调用父类的方法有何作用?
(3)我把这句话getContentPane().add(jtp, BorderLayout.CENTER);改成
JFrame jf=new JFrame();
Container container=jf.getContentPane();
container.setLayout(null);
jf.add(jtp);
却不能用,为什么?