一个按钮和菜单的例子阿,看看吧//TextControl.javaimport javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import javax.swing.text.*;
import javax.swing.border.*;
class JP
extends JPanel
implements ActionListener//,ListSelectionListener
{
public JP()
{
//对象定义区
jTF=new JTextField("文本输入区");
butSubmit=new JButton("提 交");
butReset=new JButton("取 消");
//添加监听器
butSubmit.addActionListener(this);
butReset.addActionListener(this);
//布局管理实现区
JPanel jPTemp=new JPanel();//获得面板对象 GridBagLayout gbl=new GridBagLayout();//生成网袋布局管理器实例 jPTemp.setLayout(gbl);//将面板的布局管理器设为网袋布局管理器 GridBagConstraints bgc=new GridBagConstraints();//生成布局管理器中管理布局的一个对象
//设置是否让组件伸缩并充满整个区域,便需要设置fill字段。
//共有四种有效形式GridBagConstraints.NONE 不伸缩,GridBagConstraints.HORIZONTAL 水平伸缩
//GridBagConstraints. VERTICAL 垂直方向伸缩,GridBagConstraints.BOTH 两个方向伸缩
bgc.fill=GridBagConstraints.NONE; //如果不想让一个组件充满整个区域,同时还可以指定它放在那个位置,它可以通过设置anchor字段来实现
//共有GridBagConstraints.CENTER 居中,GridBagConstraints.NORTH 居顶,等值可供选择.
bgc.anchor=GridBagConstraints.CENTER; bgc.gridx=0;
bgc.gridy=0;
bgc.gridwidth=2;
bgc.gridheight=1;
jPTemp.add(jTF,bgc); bgc.gridx=0;
bgc.gridy=1;
bgc.gridwidth=1;
bgc.gridheight=1;
jPTemp.add(butSubmit,bgc);
bgc.gridx=1;
bgc.gridy=1;
bgc.gridwidth=1;
bgc.gridheight=1;
jPTemp.add(butReset,bgc); add(jPTemp);
}
public void actionPerformed(ActionEvent mE)
{
Object source=mE.getSource();
if (source==butSubmit)
{
jTF.setText("提 交");
}
else if (source==butReset)
{
jTF.setText("取 消");
}
}
private JTextField jTF;
private JButton butSubmit;
private JButton butReset;
};class FrmTest
extends JFrame implements ActionListener
{
public FrmTest()
{
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){System.exit(0);}
});//利用内部类实现窗口监听接口的适配器类
setSize(150,90);
setLocation(300,300);
JMenu file=new JMenu("邮箱");
JMenuItem submitItem=new JMenuItem("登陆",new ImageIcon("denglu.gif"));
submitItem.addActionListener(this);
JMenuItem cancelItem=new JMenuItem("购买",new ImageIcon("goumai.gif"));
cancelItem.setHorizontalTextPosition(SwingConstants.LEFT);
cancelItem.addActionListener(this); file.add(submitItem);
file.add(cancelItem);
file.addSeparator(); jcbItem=new JCheckBoxMenuItem("选中",new ImageIcon("goumai.gif"));
jcbItem.setHorizontalTextPosition(SwingConstants.LEFT);
jcbItem.addActionListener(this); file.add(jcbItem);
/*file.addSeparator();
JMenu open=new JMenu("Open");
open.add("Local");
open.add("Web");
file.add(open);*/
JMenuBar jMB=new JMenuBar();
jMB.add(file); setJMenuBar(jMB);
//setResizable(false);
Container content=getContentPane();// content.add();
//对象定义区
jTF=new JTextField("文本输入区");
butSubmit=new JButton(new ImageIcon("denglu.gif"));
butSubmit.setActionCommand("登陆");
butReset=new JButton(new ImageIcon("goumai.gif"));
butReset.setActionCommand("购买");
//添加监听器
butSubmit.addActionListener(this);
butReset.addActionListener(this);
//布局管理实现区
JPanel jPTemp=new JPanel();//获得面板对象 GridBagLayout gbl=new GridBagLayout();//生成网袋布局管理器实例 jPTemp.setLayout(gbl);//将面板的布局管理器设为网袋布局管理器 GridBagConstraints bgc=new GridBagConstraints();//生成布局管理器中管理布局的一个对象
//设置是否让组件伸缩并充满整个区域,便需要设置fill字段。
//共有四种有效形式GridBagConstraints.NONE 不伸缩,GridBagConstraints.HORIZONTAL 水平伸缩
//GridBagConstraints. VERTICAL 垂直方向伸缩,GridBagConstraints.BOTH 两个方向伸缩
bgc.fill=GridBagConstraints.NONE; //如果不想让一个组件充满整个区域,同时还可以指定它放在那个位置,它可以通过设置anchor字段来实现
//共有GridBagConstraints.CENTER 居中,GridBagConstraints.NORTH 居顶,等值可供选择.
bgc.anchor=GridBagConstraints.CENTER; bgc.gridx=0;
bgc.gridy=0;
bgc.gridwidth=2;
bgc.gridheight=1;
jPTemp.add(jTF,bgc); bgc.gridx=0;
bgc.gridy=1;
bgc.gridwidth=1;
bgc.gridheight=1;
jPTemp.add(butSubmit,bgc);
bgc.gridx=1;
bgc.gridy=1;
bgc.gridwidth=1;
bgc.gridheight=1;
jPTemp.add(butReset,bgc); content.add(jPTemp); } public void actionPerformed(ActionEvent mE)
{
String source=mE.getActionCommand();
if (source.equals("登陆"))
{
jTF.setText("登 陆");
//jTF.setText(String.valueOf(mE.get));
}
else if (source.equals("购买"))
{
jTF.setText("购 买");
} else if (source.equals("选中"))
{
if (jcbItem.isSelected()) jTF.setText("选中");
else jTF.setText("未选中");
}
}
private JTextField jTF;
private JButton butSubmit;
private JButton butReset; private JCheckBoxMenuItem jcbItem;
};public class menuTest
{
public static void main(String[] args)
{
FrmTest test=new FrmTest();
test.show();
}
}/*--by bookbobby(书呆)-+
| |
| 你说爱我只是习惯 |
| 再也不是喜欢 |
| 我给你的爱 |
| 已不再温暖 |
| |
+--by bookbobby(书呆)-*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import javax.swing.text.*;
import javax.swing.border.*;
class JP
extends JPanel
implements ActionListener//,ListSelectionListener
{
public JP()
{
//对象定义区
jTF=new JTextField("文本输入区");
butSubmit=new JButton("提 交");
butReset=new JButton("取 消");
//添加监听器
butSubmit.addActionListener(this);
butReset.addActionListener(this);
//布局管理实现区
JPanel jPTemp=new JPanel();//获得面板对象 GridBagLayout gbl=new GridBagLayout();//生成网袋布局管理器实例 jPTemp.setLayout(gbl);//将面板的布局管理器设为网袋布局管理器 GridBagConstraints bgc=new GridBagConstraints();//生成布局管理器中管理布局的一个对象
//设置是否让组件伸缩并充满整个区域,便需要设置fill字段。
//共有四种有效形式GridBagConstraints.NONE 不伸缩,GridBagConstraints.HORIZONTAL 水平伸缩
//GridBagConstraints. VERTICAL 垂直方向伸缩,GridBagConstraints.BOTH 两个方向伸缩
bgc.fill=GridBagConstraints.NONE; //如果不想让一个组件充满整个区域,同时还可以指定它放在那个位置,它可以通过设置anchor字段来实现
//共有GridBagConstraints.CENTER 居中,GridBagConstraints.NORTH 居顶,等值可供选择.
bgc.anchor=GridBagConstraints.CENTER; bgc.gridx=0;
bgc.gridy=0;
bgc.gridwidth=2;
bgc.gridheight=1;
jPTemp.add(jTF,bgc); bgc.gridx=0;
bgc.gridy=1;
bgc.gridwidth=1;
bgc.gridheight=1;
jPTemp.add(butSubmit,bgc);
bgc.gridx=1;
bgc.gridy=1;
bgc.gridwidth=1;
bgc.gridheight=1;
jPTemp.add(butReset,bgc); add(jPTemp);
}
public void actionPerformed(ActionEvent mE)
{
Object source=mE.getSource();
if (source==butSubmit)
{
jTF.setText("提 交");
}
else if (source==butReset)
{
jTF.setText("取 消");
}
}
private JTextField jTF;
private JButton butSubmit;
private JButton butReset;
};class FrmTest
extends JFrame implements ActionListener
{
public FrmTest()
{
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){System.exit(0);}
});//利用内部类实现窗口监听接口的适配器类
setSize(150,90);
setLocation(300,300);
JMenu file=new JMenu("邮箱");
JMenuItem submitItem=new JMenuItem("登陆",new ImageIcon("denglu.gif"));
submitItem.addActionListener(this);
JMenuItem cancelItem=new JMenuItem("购买",new ImageIcon("goumai.gif"));
cancelItem.setHorizontalTextPosition(SwingConstants.LEFT);
cancelItem.addActionListener(this); file.add(submitItem);
file.add(cancelItem);
file.addSeparator(); jcbItem=new JCheckBoxMenuItem("选中",new ImageIcon("goumai.gif"));
jcbItem.setHorizontalTextPosition(SwingConstants.LEFT);
jcbItem.addActionListener(this); file.add(jcbItem);
/*file.addSeparator();
JMenu open=new JMenu("Open");
open.add("Local");
open.add("Web");
file.add(open);*/
JMenuBar jMB=new JMenuBar();
jMB.add(file); setJMenuBar(jMB);
//setResizable(false);
Container content=getContentPane();// content.add();
//对象定义区
jTF=new JTextField("文本输入区");
butSubmit=new JButton(new ImageIcon("denglu.gif"));
butSubmit.setActionCommand("登陆");
butReset=new JButton(new ImageIcon("goumai.gif"));
butReset.setActionCommand("购买");
//添加监听器
butSubmit.addActionListener(this);
butReset.addActionListener(this);
//布局管理实现区
JPanel jPTemp=new JPanel();//获得面板对象 GridBagLayout gbl=new GridBagLayout();//生成网袋布局管理器实例 jPTemp.setLayout(gbl);//将面板的布局管理器设为网袋布局管理器 GridBagConstraints bgc=new GridBagConstraints();//生成布局管理器中管理布局的一个对象
//设置是否让组件伸缩并充满整个区域,便需要设置fill字段。
//共有四种有效形式GridBagConstraints.NONE 不伸缩,GridBagConstraints.HORIZONTAL 水平伸缩
//GridBagConstraints. VERTICAL 垂直方向伸缩,GridBagConstraints.BOTH 两个方向伸缩
bgc.fill=GridBagConstraints.NONE; //如果不想让一个组件充满整个区域,同时还可以指定它放在那个位置,它可以通过设置anchor字段来实现
//共有GridBagConstraints.CENTER 居中,GridBagConstraints.NORTH 居顶,等值可供选择.
bgc.anchor=GridBagConstraints.CENTER; bgc.gridx=0;
bgc.gridy=0;
bgc.gridwidth=2;
bgc.gridheight=1;
jPTemp.add(jTF,bgc); bgc.gridx=0;
bgc.gridy=1;
bgc.gridwidth=1;
bgc.gridheight=1;
jPTemp.add(butSubmit,bgc);
bgc.gridx=1;
bgc.gridy=1;
bgc.gridwidth=1;
bgc.gridheight=1;
jPTemp.add(butReset,bgc); content.add(jPTemp); } public void actionPerformed(ActionEvent mE)
{
String source=mE.getActionCommand();
if (source.equals("登陆"))
{
jTF.setText("登 陆");
//jTF.setText(String.valueOf(mE.get));
}
else if (source.equals("购买"))
{
jTF.setText("购 买");
} else if (source.equals("选中"))
{
if (jcbItem.isSelected()) jTF.setText("选中");
else jTF.setText("未选中");
}
}
private JTextField jTF;
private JButton butSubmit;
private JButton butReset; private JCheckBoxMenuItem jcbItem;
};public class menuTest
{
public static void main(String[] args)
{
FrmTest test=new FrmTest();
test.show();
}
}/*--by bookbobby(书呆)-+
| |
| 你说爱我只是习惯 |
| 再也不是喜欢 |
| 我给你的爱 |
| 已不再温暖 |
| |
+--by bookbobby(书呆)-*/
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货