上周学习了布局和响应,根据上周学习的内容我自己做了个小程序:选择自己喜欢的音乐类型。当选择了自己喜欢的音乐类型时在列表框下会出现自己选择的内容,同时也会弹出对话框显示自己选择的音乐类型。
Jlist
JList() : 构造一个使用空模型的 JList。
JList(ListModel dataModel): 构造一个 JList,使其使用指定的非 null 模型显示元素。
JList(Object[] listData): 构造一个 JList,使其显示指定数组中的元素.
JList(Vector<?> listData) : 构造一个 JList,使其显示指定 Vector 中的元素。
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;
public class ImageViewer {
/**
* @param args
*/
private JFrame frame;
private JLabel fileLabel,statusLabel,imagePanel,result1,result2;
private List MyList;
public ImageViewer(){
makeFrame();
frame.pack();
frame.setVisible(true);
frame.setSize(250,250);
frame.setLocation(250,250);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
}
private void makeFrame(){
frame = new JFrame("ImageViewer");
Container contentPane = frame.getContentPane();
makeMenuBar();
fileLabel =new JLabel("挑选出你喜爱的歌曲类型");
contentPane.add(fileLabel,BorderLayout.NORTH);
statusLabel=new JLabel("Version1.0");
result2 = new JLabel();
contentPane.add(result2,BorderLayout.SOUTH);
contentPane.add(statusLabel,BorderLayout.SOUTH);
JPanel northPanel=new JPanel(new FlowLayout(FlowLayout.LEADING));
JPanel inNorthPanel=new JPanel(new GridLayout(2,1));
result1 = new JLabel();
result2 = new JLabel();
MyList = new List(6,true);
MyList.add("古典音乐");
MyList.add("现代音乐");
MyList.add("轻音乐");
MyList.add("摇滚音乐");
MyList.add("民族音乐");
MyList.add("网络音乐");
inNorthPanel.add(MyList);
inNorthPanel.add(result1);
inNorthPanel.add(result2);
northPanel.add(inNorthPanel);
;
contentPane.add(northPanel,BorderLayout.WEST);//边界布局
MyList.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
{
if(e.getSource()==MyList)
JOptionPane.showMessageDialog(MyList,"你选择的是"+e.getActionCommand(),"提示",JOptionPane.WARNING_MESSAGE );
}}});
MyList.addItemListener(new ItemListener(){
@Override
public void itemStateChanged(ItemEvent e)
{
List temp;
String sList[];
String mgr = new String("");
if(e.getItemSelectable() instanceof List)
{
temp = (List)(e.getItemSelectable());
sList = temp.getSelectedItems();
for(int i=0;i<sList.length;i++)
mgr = mgr + sList[i] + " ";
result2.setText("你选择音乐是:"+mgr);
JOptionPane.showMessageDialog(MyList,"你选择的音乐是"+mgr,"提示",JOptionPane.WARNING_MESSAGE );
//showStatus(mgr);
}
}});
}
private void makeMenuBar(){
JMenuBar menubar = new JMenuBar();
frame.setJMenuBar(menubar);
JMenu fileMenu = new JMenu("File");
menubar.add(fileMenu);
JMenu fileMenu1= new JMenu("Filter");
menubar.add(fileMenu1);
JMenu fileMenu2= new JMenu("Help");
menubar.add(fileMenu2);
JMenuItem openItem = new JMenuItem("Open...");
fileMenu.add(openItem);
JMenuItem closeItem = new JMenuItem("Close");
fileMenu.add(closeItem);
fileMenu.addSeparator();
JMenuItem saveasItem = new JMenuItem("Save as...");
fileMenu.add(saveasItem);
fileMenu.addSeparator();
JMenuItem quitItem = new JMenuItem("Quit");
fileMenu.add(quitItem);
JMenuItem darkerItem =new JMenuItem("Darker");
fileMenu1.add(darkerItem);
JMenuItem lighterItem =new JMenuItem("Lighter");
fileMenu1.add(lighterItem);
JMenuItem thresholdItem =new JMenuItem("Threshold");
fileMenu1.add(thresholdItem);
JMenuItem fishItem =new JMenuItem("Fish Eye");
fileMenu1.add(fishItem);
JMenuItem aboutItem =new JMenuItem("About ImageViewer");
fileMenu2.add(aboutItem);
frame.pack();
frame.setVisible(true);
frame.setSize(250,250);
frame.setLocation(250,250);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new ImageViewer();
}
}
我的照片: