`
tyl
  • 浏览: 50796 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

jlist简单例子

阅读更多

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.*;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JButton;
import javax.swing.DefaultListModel;

import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class JListTest extends JFrame {

 /**
   * serialVersionUID:TODO(描述变量的功能)
  *
  * @since Ver 1.1
  */
 private static final long serialVersionUID = 1L;
 JPanel    contentPane;
 String    str;
 DefaultListModel dlm    = new DefaultListModel();
 DefaultListModel dlm1   = new DefaultListModel();
 JLabel    lblMsg1   = new JLabel();
 JLabel    lblMsg2   = new JLabel();
 JList    listNo1   = new JList(dlm);
 JList    listNo2   = new JList(dlm1);
 JButton    btnInsert  = new JButton();
 JButton    btnInsertAll = new JButton();
 JButton    btnDelete  = new JButton();
 JButton    btnRemoveAll = new JButton();

 public static void main(String args[]) {
  new JListTest();
 }
 public JListTest() {
  try {
   setDefaultCloseOperation(EXIT_ON_CLOSE);
   jbInit();
   this.setVisible(true);
   this.show();
  } catch (Exception exception) {
   exception.printStackTrace();
  }
 }

 private void jbInit() throws Exception {
  contentPane = (JPanel) getContentPane();
  contentPane.setLayout(null);
  setSize(new Dimension(544, 378));
  setTitle("Frame Title");
  lblMsg1.setText("第一个列表");
  lblMsg1.setBounds(new Rectangle(20, 40, 135, 37));
  lblMsg2.setText("第二个列表");
  lblMsg2.setBounds(new Rectangle(269, 41, 232, 35));
  listNo1.setBounds(new Rectangle(11, 76, 167, 248));
  listNo1.addMouseListener(new Frame1_listNo1_mouseAdapter(this));
  listNo2.setBounds(new Rectangle(306, 76, 197, 250));
  listNo2.addMouseListener(new Frame1_listNo2_mouseAdapter(this));
  btnInsert.setBounds(new Rectangle(188, 89, 111, 37));
  btnInsert.setText("增加>");
  btnInsert.addActionListener(new Frame1_btnInsert_actionAdapter(this));
  btnInsertAll.setBounds(new Rectangle(188, 141, 112, 39));
  btnInsertAll.setText("增加>>");
  btnInsertAll.addActionListener(new Frame1_btnInsertAll_actionAdapter(this));
  btnDelete.setBounds(new Rectangle(187, 219, 115, 40));
  btnDelete.setText("<删除");
  btnDelete.addActionListener(new Frame1_btnDelete_actionAdapter(this));
  btnRemoveAll.setBounds(new Rectangle(189, 276, 114, 41));
  btnRemoveAll.setText("<<删除");
  btnRemoveAll.addActionListener(new Frame1_btnRemoveAll_actionAdapter(this));
  dlm.addElement("数学");
  dlm.addElement("语文");
  dlm.addElement("英语");
  dlm.addElement("地理");
  dlm.addElement("000003/A;1-test3");
  dlm.addElement("000002/A;1-test2(view)");
  dlm.addElement("000004/A;1-test4");

  contentPane.add(lblMsg1);
  contentPane.add(lblMsg2);
  contentPane.add(listNo1);
  contentPane.add(listNo2);
  contentPane.add(btnInsert);
  contentPane.add(btnInsertAll);
  contentPane.add(btnDelete);
  contentPane.add(btnRemoveAll);
 }

 public void listNo1_mouseClicked(MouseEvent e) {
  str = (String) listNo1.getSelectedValue();// 获得用户选中的那个值
 }

 public void btnInsert_actionPerformed(ActionEvent e) {
  dlm1.addElement(str);// 将用户选中的值添加到第二个列表中
  dlm.removeElement(str);
 }

 public void btnInsertAll_actionPerformed(ActionEvent e) {
  for (int i = 0; i < listNo1.getModel().getSize(); i++) {// 得到第一个列表所有的值
   dlm1.addElement(listNo1.getModel().getElementAt(i));// 将第一个列表添加到第二个列表中
  }
 }

 public void btnDelete_actionPerformed(ActionEvent e) {
  dlm1.removeElement(str);// 删除第二个列表中用户选中的值
  dlm.addElement(str);
 }

 public void listNo2_mouseClicked(MouseEvent e) {
  str = (String) listNo2.getSelectedValue();// 得到第二个列表中用户选中的值

 }

 public void btnRemoveAll_actionPerformed(ActionEvent e) {
  dlm1.removeAllElements();

 }

 

//这个是用来实现复制功能的。

 public void getsyscopy(MouseEvent e) {
  Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
  Object[] temp = listNo2.getSelectedValues();
  StringBuffer sb = new StringBuffer();
  clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
  for (int i = 0; i < temp.length; i++) {
   sb.append(temp[i]);
   sb.append("\n");
  }
  StringSelection text = new StringSelection(sb.toString());
  clipboard.setContents(text, null);
 }

 public void pastCopy(MouseEvent e) {
  Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
  Transferable contents = clipboard.getContents(this);
  DataFlavor flavor = DataFlavor.stringFlavor;
  if (contents.isDataFlavorSupported(flavor))
   try {
    String str;
    str = (String) contents.getTransferData(flavor);
    System.out.println("str........." + str);
   } catch (Exception ee) {}
 }
//}

class Frame1_btnRemoveAll_actionAdapter implements ActionListener {
 private JListTest adaptee;

 Frame1_btnRemoveAll_actionAdapter(JListTest adaptee) {
  this.adaptee = adaptee;
 }

 public void actionPerformed(ActionEvent e) {
  adaptee.btnRemoveAll_actionPerformed(e);
 }
}

class Frame1_listNo2_mouseAdapter extends MouseAdapter {
 private JListTest adaptee;

 Frame1_listNo2_mouseAdapter(JListTest adaptee) {
  this.adaptee = adaptee;
 }

 public void mouseClicked(MouseEvent e) {
  adaptee.listNo2_mouseClicked(e);
 }
}

class Frame1_btnDelete_actionAdapter implements ActionListener {
 private JListTest adaptee;

 Frame1_btnDelete_actionAdapter(JListTest adaptee) {
  this.adaptee = adaptee;
 }

 public void actionPerformed(ActionEvent e) {

  adaptee.btnDelete_actionPerformed(e);
 }
}

class Frame1_btnInsertAll_actionAdapter implements ActionListener {
 private JListTest adaptee;

 Frame1_btnInsertAll_actionAdapter(JListTest adaptee) {
  this.adaptee = adaptee;
 }

 public void actionPerformed(ActionEvent e) {
  adaptee.btnInsertAll_actionPerformed(e);
 }
}

class Frame1_btnInsert_actionAdapter implements ActionListener {
 private JListTest adaptee;

 Frame1_btnInsert_actionAdapter(JListTest adaptee) {
  this.adaptee = adaptee;
 }

 public void actionPerformed(ActionEvent e) {
  adaptee.btnInsert_actionPerformed(e);
 }
}

class Frame1_listNo1_mouseAdapter extends MouseAdapter {
 private JListTest adaptee;

 Frame1_listNo1_mouseAdapter(JListTest adaptee) {
  this.adaptee = adaptee;
 }

 public void mouseClicked(MouseEvent e) {
  adaptee.listNo1_mouseClicked(e);
  try {
   adaptee.getsyscopy(e);
   adaptee.pastCopy(e);
  } catch (Exception e1) {
   e1.printStackTrace();
  }
 }
}
}

分享到:
评论

相关推荐

    JList事件监听器的实现例子

    这个简单的示例演示了如何利用Java Swing中的`JList`来处理用户交互,以及如何通过事件监听器来响应用户的操作。在实际应用中,你可以根据需求进一步定制监听器的行为,例如弹出对话框、更新其他组件的状态或者进行...

    JList 上下左右拖动

    在这个例子中,`mouseDragged`方法处理拖动过程,`mouseMoved`方法则跟踪鼠标移动。当鼠标在列表项上按下并移动时,我们交换当前项的位置,模拟拖放效果。请注意,这仅实现了垂直方向的拖动,要添加水平拖动(左右)...

    Java Swing JList列表框的实现

    Java Swing JList 列表框的实现 Java Swing JList 列表框是 Java 中的一个基本组件,用于显示多个选项,允许用户选择一个或多个...这个代码实例创建了一个简单的 JList 实例,并添加了选项选中状态被改变的监听器。

    java 实现音乐播放器的简单实例.doc

    【Java实现音乐播放器的简单实例】是一个适合初学者理解Java GUI编程和音频处理的项目。这个实例展示了如何创建一个简单的音乐播放器,包括播放、暂停、切换歌曲和循环播放的功能。以下是关键知识点的详细说明: 1....

    java图形实例大全

    Java图形实例大全是一份深入探讨Java图形用户界面(GUI)编程的资源集合,涵盖了Swing库中的多个关键组件和功能。这份资料对于初学者来说尤为宝贵,它通过一系列实例帮助学习者掌握Java GUI编程的基本技巧。 1. **...

    一些Swing应用实例Java源码包

    例如,一个简单的Swing程序可能包括创建JFrame,添加JButton,然后设置一个ActionListener来处理按钮点击事件。 通过深入研究这些源码实例,你可以掌握Swing的基本用法,了解组件的交互方式,以及如何构建复杂的...

    Swing界面库的例子

    创建和设置`JToolTip`非常简单,可以使用`JComponent.setToolTipText(String text)`方法为组件添加提示文本。 2. JList `JList` 用于展示一系列可选择的项目,用户可以通过单击来选择其中的一项。它可以用来创建...

    Swing组件应用实例

    在压缩包文件"Swing组建应用例子"中,你应该能找到一些具体示例代码,涵盖了上述知识点。通过阅读和运行这些代码,你将能够更加深入地了解如何在实际项目中运用Swing组件。记得动手实践,理论与实践相结合,才能更好...

    Java GUI实例下载

    不同的布局管理器适用于不同的设计需求,例如,FlowLayout适合简单的线性排列,而GridBagLayout则可以实现更复杂的自适应布局。 3. **控件使用**:Java Swing库提供了丰富的组件供开发者使用,如按钮(JButton)、...

    一个简单音乐播放器的java代码

    6. 设计模式:该代码使用了工厂模式来创建音频播放器的实例。工厂模式是一种常用的设计模式,用于封装对象的创建逻辑。 7. 异常处理:该代码使用了 try-catch 语句来处理可能出现的异常,如 IO 异常、媒体播放异常...

    swing编程小例子

    它可以帮助初学者理解如何构建一个简单的Swing应用程序。 2. **readXML_Demo**: 这个例子可能涉及到读取XML文件,Swing可以与Java的DOM或SAX解析器结合,展示如何在GUI中显示XML数据。用户可能可以通过按钮触发...

    JavaSwing 实例教程

    6. **对话框和菜单**:涵盖JOptionPane的使用,用于创建简单的对话框,以及JMenu、JMenuItem的使用,构建应用程序的菜单栏。 7. **组件的定制**:介绍如何创建自定义组件,扩展Swing的现有组件,实现特定的功能。 ...

    java简单音乐播放器源程序

    8. **设计模式**:良好的软件设计可能涉及到设计模式的应用,如单例模式(Singleton)可能用于音频播放器实例,工厂模式(Factory)可能用于创建不同类型的音频输入流,观察者模式(Observer)可能用于UI与播放器...

    swing的例子

    这个例子可能是一个简单的Swing应用,旨在帮助开发者理解如何使用Swing来创建交互式的用户界面。以下是对Swing的基本介绍以及如何利用它进行编程的一些关键知识点。 **Swing概述** Swing是Java Foundation Classes ...

    小型windows播放器实例

    在这个例子中,JFrame 用于创建主窗口,JList 显示播放列表,JButton 处理用户操作,如播放、停止、前进和后退。JFileChooser 则用于让用户选择音频文件。 6. **事件处理**: - Java Swing 使用事件监听器模型来...

    java的Swing控件实例

    3. **选择组件**:包括下拉列表(JComboBox)、列表视图(JList)、树视图(JTree)和表格(JTable)。这些组件允许用户从多个选项中进行选择或展示结构化数据。 4. **菜单组件**:Swing提供了菜单栏(JMenuBar)、...

    java实例几百例,特别是swing的GUI编程

    在Swing中,你可以找到各种各样的组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、滚动条(JScrollPane)、列表(JList)、表格(JTable)、树形视图(JTree)等。这些组件可以...

    swing之拖拽功能DragDemo

    在这个例子中,我们首先创建了一个JList并启用其拖放功能。接着,我们为JList和JTextArea创建了自定义的`TransferHandler`,以处理数据的拖入和拖出。请注意,`TransferHandler`的实现会根据实际需求有所不同,例如...

    Java图像编程实例库

    JLabel用于显示文本或图像,JTextArea则适合多行文本输入,JTable用于展示表格数据,而JTree和JList则用于呈现树形和列表结构。 3. **Java2D API**: Java2D是一个高级的图形渲染引擎,可以用来进行更复杂的图形操作...

Global site tag (gtag.js) - Google Analytics