import java.awt.Color;public class Demo02 {
public static void main(String[] args) { Icon icon = new ImageIcon("d:Demo\\素材\\阿狸壁纸.jpg");
Font font = new Font("宋体", Font.BOLD, 20); final JFrame jf = new JFrame("写着玩的记事本");
jf.addWindowListener(new WindowAdapter() {
@Override
public void windowActivated(WindowEvent arg0) {
System.out.println("打开了窗口");
} @Override
public void windowClosing(WindowEvent e) {
System.out.println("关闭了窗口");
} @Override
public void windowDeactivated(WindowEvent e) {
System.out.println("最小化了窗口");
} @Override
public void windowDeiconified(WindowEvent e) {
System.out.println("最大化了窗口");
}
}); final JTextPane textPane = new JTextPane();// 设置输入栏
textPane.setBounds(0, 24, 632, 422);
textPane.setOpaque(false); // 设置控件背景为透明
// jf.getContentPane().add(textPane);
textPane.setCaretColor(new Color(12, 253, 100));
textPane.setSelectedTextColor(Color.BLACK);
textPane.setForeground(Color.WHITE);// 设置文字颜色
textPane.setFont(font);
textPane.setLayout(null); JMenuBar menuBar = new JMenuBar();
menuBar.setBounds(0, 0, 792, 27);
jf.getContentPane().add(menuBar); JMenu menu = new JMenu("文件");
menuBar.add(menu);
// jf.getContentPane().add(lblNewLabel); final JMenuItem mntmNewMenuItem_2 = new JMenuItem("新建");
mntmNewMenuItem_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == mntmNewMenuItem_2) {
System.out.println("选择了新建_快捷键为CTRL+N");
// textPane.setText("选择了新建_快捷键为CTRL+N"); }
}
});
mntmNewMenuItem_2.setMnemonic('N');
mntmNewMenuItem_2.setAccelerator(KeyStroke.getKeyStroke('N',// 取得快捷键
java.awt.Event.CTRL_MASK));
menu.add(mntmNewMenuItem_2); final JMenuItem mntmNewMenuItem_1 = new JMenuItem("打开");
mntmNewMenuItem_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == mntmNewMenuItem_1) {
System.out.println("选择了打开_快捷键为CTRL+O");
// textPane.setText("选择了打开_快捷键为CTRL+O");
}
}
});
mntmNewMenuItem_1.setMnemonic('S');
mntmNewMenuItem_1.setAccelerator(KeyStroke.getKeyStroke('O',// 取得快捷键
java.awt.Event.CTRL_MASK));
menu.add(mntmNewMenuItem_2);
menu.add(mntmNewMenuItem_1); final JMenuItem mntmNewMenuItem = new JMenuItem("保存");
mntmNewMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == mntmNewMenuItem) {
System.out.println("选择了保存_快捷键为CTRL+S");
// textPane.setText("选择了保存_快捷键为CTRL+S");
}
}
});
mntmNewMenuItem.setMnemonic('S');
mntmNewMenuItem.setAccelerator(KeyStroke.getKeyStroke('S',// 取得快捷键
java.awt.Event.CTRL_MASK));
menu.add(mntmNewMenuItem_2);
menu.add(mntmNewMenuItem); final JMenuItem menuItem = new JMenuItem("另存为");
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == menuItem) {
System.out.println("选择了另存为快捷键为CTRL+Z");
// textPane.setText("选择了另存为_快捷键为CTRL+Z");
}
}
});
menuItem.setMnemonic('Z');
menuItem.setAccelerator(KeyStroke.getKeyStroke('Z',// 取得快捷键
java.awt.Event.CTRL_MASK));
menu.add(mntmNewMenuItem_2);
menu.add(menuItem); JMenu mnNewMenu = new JMenu("编辑");
menuBar.add(mnNewMenu); JMenu menu_1 = new JMenu("格式");
menuBar.add(menu_1); JMenu menu_2 = new JMenu("查看");
menuBar.add(menu_2); JMenu menu_3 = new JMenu("帮助");
menuBar.add(menu_3);
// jf.add(lblNewLabel); JPanel jp1 = new JPanel(); JLabel lblNewLabel = new JLabel(icon);// 设置背景
lblNewLabel.setBounds(-11, 24, 643, 422);
jp1.add(textPane); JScrollPane scrollPane = new JScrollPane(jp1,//设置滚动条
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
jf.getContentPane().add(scrollPane); jf.setLayout(null);//设置JPrame 布局为空 否则会覆盖之前的
jf.setSize(640, 480);
jf.setLocation(300, 400);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭资源
}
}
这是源码 为什么 显示的为空白?呢

解决方案 »

  1.   

    我的意图为 写一个 文本编辑 然后 在里面加上一个标签 标签插上图 作为背景
    然后 给 文本加上透明 可以看到背景 以上都没有问题把上面两个控件装入 JPanel中  加入滚动条 容器中
    然后 就什么都看不到了~。这是为什么呢  
      

  2.   

    jf.getContentPane().add(menuBar);
    改成:
    jf.getContentPane().add(menuBar, BorderLayout.NORTH);jf.setLayout(null); 
    去掉