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();