All pastes #2072078 Raw Edit

Untitled

public text v1 · immutable
#2072078 ·published 2011-05-30 10:49 UTC
rendered paste body

public class PopupWindow {

	private static int index;
	private static JDialog dialogFrame;

	public void getPopupWindow(JFrame parentFrame) {
		// selection:
		// 1 for TATP
		// 2 for TPCC

		dialogFrame = new JDialog(parentFrame, "PopupWindow", true);
		
		dialogFrame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

		JPanel panelPopup = new JPanel();
		panelPopup.setLayout(new GridLayout(2, 0));

		JScrollPane scrollbar = new JScrollPane(panelPopup);
		scrollbar.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);

		for (int i = 0; i < 8; i++) {
			//JPanel pan = new JPanel();
			JTextArea ta = new JTextArea();
			ta.setText("Set some meaningful text here");
			ta.addMouseListener(new MyMouseListener(i));
			panelPopup.add(ta);
		}

		dialogFrame.add(scrollbar);
		dialogFrame.pack();
		dialogFrame.setLocationRelativeTo(parentFrame);
		dialogFrame.setVisible(true);

	}
	
	public int getIndex() {
		return index;
	}

	private static class MyMouseListener implements MouseListener {
		private final int idx;
		public MyMouseListener(int idx) { this.idx = idx; }
		@Override
		public void mouseClicked(MouseEvent arg0) {
			index = idx;
			dialogFrame.setVisible(false);
		}

		@Override
		public void mouseEntered(MouseEvent arg0) {}

		@Override
		public void mouseExited(MouseEvent arg0) {}

		@Override
		public void mousePressed(MouseEvent arg0) {}

		@Override
		public void mouseReleased(MouseEvent arg0) {}

	}

}

////////////////////////////////// Main Window /////////////////////////////////////////////
Frame frame = ...
PopupWindow popupWindow = new PopupWindow();

ExecutorService executorService = Executors.newSingleThreadExecutor();

final Future future = executorService.submit(new Runnable() {
	public void run() {
		popupWindow.getPopupWindow(frame);
	}
});

try {
	future.get();
} catch (InterruptedException e) {
	e.printStackTrace();
} catch (ExecutionException e) {
	e.printStackTrace();
}  //returns null if the task has finished correctly.

int idx = popupWindow.getIndex();