编写一个应用程序,在其窗口内包含一个菜单栏和一个文本框。菜单栏包括“设置”和“操作”两个菜单。“操作”菜单包括“退出”菜单项,当用户选择“退出”菜单项时,则关闭窗口退出整个应用程序的运行;“设置”菜单包括“字体”和“风格”两个菜单项和一个“只读”复选菜单项。“字体”菜单项包括“宋体”、“楷体”和“黑体”3个单选子菜单项。“风格”菜单项包括“普通”、“黑体”、“斜体”等3个复选子菜单项。当“只读”菜单项未被选中时,用户可以在文本区内输入字符;当“只读”菜单项被选中时,用户不能在文本区内输入字符。当用户选择其他菜单项时,文本区内的文字随之变化。
10、在9题的基础上增加如下功能:每当用户选中“只读”菜单项时,都将“字体”和“风格”两个菜单项变成灰色,使之不能被选中;而每当“只读”菜单项未被选中时,再将“字体”和“风格”两个才当想恢复成可选状态。
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class T3 extends JFrame implements ActionListener{
public T3()
{
super();
}
public JPanel initJpanel()
{
JPanel panel=new JPanel();
panel.setPreferredSize(new Dimension(400,300));
JMenu jm=new JMenu("设置");
JMenu jmc=new JMenu("字体");
JMenu jmd=new JMenu("风格");
JMenuItem t1_1=new JMenuItem("宋体");
JMenuItem t1_2=new JMenuItem("楷体");
JMenuItem t1_3=new JMenuItem("黑体");
jmc.add(t1_1);
jmc.add(t1_2);
jmc.add(t1_3);
JCheckBox comn=new JCheckBox("普通");
JCheckBox bla=new JCheckBox("黑体");
JCheckBox itl=new JCheckBox("斜体");
jmd.add(comn);
jmd.add(bla);
jmd.add(itl);
JCheckBox read=new JCheckBox("只读");
jm.add(jmc);
jm.add(jmd);
jm.add(read);
JMenu jm1=new JMenu("操作");
JMenuItem t3=new JMenuItem("退出");
jm1.add(t3);
JMenuBar br=new JMenuBar();
br.add(jm);
br.add(jm1);
panel.add(br);
JTextArea TA=new JTextArea();
TA.setPreferredSize(new Dimension(200,100));
TA.setText("你好!");
TA.setFont(new Font("宋体",https://www.wendangku.net/doc/9a5209701.html,YOUT_LEFT_TO_RIGHT,20));
TA.setLineWrap(true);
panel.add(TA);
t1_1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
TA.setFont(new Font("宋体",https://www.wendangku.net/doc/9a5209701.html,YOUT_LEFT_TO_RIGHT,20));
}
});
t1_2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
TA.setFont(new Font("楷体",https://www.wendangku.net/doc/9a5209701.html,YOUT_LEFT_TO_RIGHT,20));
}
});
t1_3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
TA.setFont(new Font("黑体",https://www.wendangku.net/doc/9a5209701.html,YOUT_LEFT_TO_RIGHT,20));
}
});
comn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
TA.setFont(new Font("宋体",https://www.wendangku.net/doc/9a5209701.html,YOUT_LEFT_TO_RIGHT,20));
}
});
bla.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(bla.isSelected())
TA.setFont(new Font("黑体",Font.BOLD,20));
else
TA.setFont(new Font("宋体",https://www.wendangku.net/doc/9a5209701.html,YOUT_LEFT_TO_RIGHT,20));
}
});
itl.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(itl.isSelected())
if(bla.isSelected())
TA.setFont(new Font("黑体",Font.ITALIC,20));
else
TA.setFont(new Font("宋体",Font.ITALIC,20));
else
if(bla.isSelected())
TA.setFont(new Font("黑体
",https://www.wendangku.net/doc/9a5209701.html,YOUT_LEFT_TO_RIGHT,20));
else
TA.setFont(new Font("宋体",https://www.wendangku.net/doc/9a5209701.html,YOUT_LEFT_TO_RIGHT,20));
}
});
read.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(read.isSelected())
{
TA.setEditable(true);
//第十题加上下两行
jmc.setEnabled(false);
jmd.setEnabled(false);
}
else
{
TA.setEditable(false);
//第十题加上下两行
jmc.setEnabled(true);
jmd.setEnabled(true);
}
}
});
t3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
return panel;
}
public static void main(String []args)
{
JFrame frame=new JFrame("窗口");
T3 te = new T3();
frame.setContentPane(te.initJpanel());
frame.setPreferredSize(new Dimension(400,300));
frame.setVisible(true);
frame.pack();
}
}