标签:区中 NameInformation swing javax new close import JLabel 框中
每当再右侧的选择框中选中一个人的名字时,便在左侧的文本区中显示出此人的情况介绍,按close按钮时结束程序的运行
package p2;
import java.awt.event.*;
import java.util.*;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import java.awt.*;
public class GetPeopleInfo extends WindowAdapter implements ActionListener,ItemListener
{
JFrame f;//定义框架
JButton bClose;//定义按钮
JLabel lInformation,lSelectName;//定义两个标签
//定义4个占位空标签
JLabel lSpacer1=new JLabel("");
JLabel lSpacer2=new JLabel("");
JLabel lSpacer3=new JLabel("");
JLabel lSpacer4=new JLabel("");
//定义文本组件
JTextArea tTarget;//定义文本组件
//人名及对应的信息
NameInformation [] classNameInfor=new NameInformation[4];
JComboBox cName;//定义组合框(下拉菜单)
//主函数
public static void main(String args [])
{
GetPeopleInfo be=new GetPeopleInfo();
//初始化人名及对应的信息
be.classNameInfor[0]=new NameInformation("Tom", "Tom is a good boy.");
be.classNameInfor[1]=new NameInformation("Jack", "Jack is the best student of this class.");
be.classNameInfor[2]=new NameInformation("Mary", "Mary is a nice girl.");
be.classNameInfor[3]=new NameInformation("Linda", "Linda is the teacher of the class.");
be.go();
}
public void go()
{
// TODO Auto-generated method stub
f=new JFrame("My JFrame");//创建框架
f.setLayout(new GridLayout(1,2));//设置框架的布局管理器
f.setSize(300,250);//设置框架的尺寸
//创建两个标签
lInformation=new JLabel("Information");
lSelectName=new JLabel("Select Name");
//创建两个面板
JPanel pan1=new JPanel();
JPanel pan2=new JPanel();
//面板pan1的布局管理器
pan1.setLayout(new FlowLayout(FlowLayout.LEFT));
//面板pan2的布局管理器
GridBagLayout pan2Layout=new GridBagLayout();
pan2.setLayout(pan2Layout);
GridBagConstraints c=new GridBagConstraints();//对应于GridLayout
c.anchor=GridBagConstraints.NORTH;//在网格中如何显示组件
c.gridx=0;
c.gridy=0;
tTarget=new JTextArea("",8,10);//创建文本组件
//创建带滚动条的显示区
JScrollPane jsp1=new JScrollPane(tTarget,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
pan1.add(lInformation);//左侧面板中组件的加入
pan1.add(jsp1);
pan2Layout.setConstraints(lSelectName, c);//右侧面板的组件放置方式
pan2.add(lSelectName);
cName=new JComboBox();//创建组合框
for (int i = 0; i <4; i++)
{
cName.addItem(classNameInfor[i].getName());//加入名字
}
cName.addItemListener(this);//添加监听器
c.gridx=0;
c.gridy=0;
pan2Layout.setConstraints(cName, c);//名字的显示方式
pan2.add(cName, c);
c.gridx=0;
c.gridy=30;
pan2Layout.setConstraints(lSpacer1, c);//名字的显示方式
pan2.add(lSpacer1, c);
c.gridx=0;
c.gridy=50;
pan2Layout.setConstraints(lSpacer2, c);//名字的显示方式
pan2.add(lSpacer2, c);
c.gridx=0;
c.gridy=80;
pan2Layout.setConstraints(lSpacer3, c);//名字的显示方式
pan2.add(lSpacer3, c);
c.gridx=0;
c.gridy=100;
pan2Layout.setConstraints(lSpacer4, c);//名字的显示方式
pan2.add(lSpacer4, c);
bClose=new JButton("Close");
bClose.addActionListener(this);//监听
c.gridx=0;
c.gridy=170;
c.anchor=GridBagConstraints.CENTER;
pan2Layout.setConstraints(bClose, c);
pan2.add(bClose, c);
f.add(pan1);
f.add(pan2);
f.addWindowListener(this);//对窗口的监听
f.setVisible(true);
}
//实现ActionListener接口中的actionPerformed()方法
public void actionPerformed1(ActionEvent e)
{
//bClose JButton
if(e.getSource()==bClose)
{
System.exit(0);
}
}
//实现ItemListener接口中的itemStateChanged()方法
public void itemStateChanged1(ItemEvent e)
{
tTarget.replaceRange(classNameInfor[((JComboBox)(e.getSource())).getSelectedIndex()].getInfor(), 0, tTarget.getText().length());
}
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
@Override
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
}
//@Override
//public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
//}
//@Override
//public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//}
}
运行截图
标签:区中,NameInformation,swing,javax,new,close,import,JLabel,框中 来源: https://blog.csdn.net/weixin_45592298/article/details/104641045
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。