package de.ctdo.crashtest.cardplayer; import de.ctdo.crashtest.cardplayer.irc.*; import javax.swing.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.*; import java.util.Vector; public class MainFrame extends JFrame { private IrcClient irc; private JList jList; public MainFrame() { setDefaultCloseOperation(EXIT_ON_CLOSE); setTitle("CrastestCardPlayer"); setBounds(100, 100, 600, 400); irc = new IrcClient(HostHelper.getHostName(), "#crashtest", "irc.ctdo.de"); initGui(); setVisible(true); } private void initGui() { jList = new JList(readData()); jList.setLayoutOrientation(JList.VERTICAL); jList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); jList.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if(e.getClickCount() == 2){ int index = jList.locationToIndex(e.getPoint()); ListModel dlm = jList.getModel(); Object item = dlm.getElementAt(index); jList.ensureIndexIsVisible(index); System.out.println("Double clicked on " + item); irc.say("crashtest: wall " + item); } } }); add(jList); } private Vector readData() { try { File file; BufferedReader br; file = new File ("messages.txt"); if(file.exists()) { br = new BufferedReader(new FileReader (file)); } else { InputStream is = Main.class.getResourceAsStream("/messages.txt"); br = new BufferedReader(new InputStreamReader(is)); } Vector lines = new Vector(); String line; while((line=br.readLine())!=null) { lines.add(line); } return lines; } catch(Exception e) { e.printStackTrace(); Vector vector = new Vector(); vector.add("could not read the input file..."); } return null; } }