Как добавить кадр в другой фрейм?

Здесь я должен показать всплывающее окно в системном трее, используя класс Dimension и Toolkit. У меня 5 всплывающих окон. Средние 5 кадров показывают один над одним. После этого я хочу показать все кадры в одном кадре, где я могу прокрутить этот кадр.

Итак, можете ли вы предложить мне, как этого достичь?

int n=0;
while (itr.hasNext()) {
Object element = itr.next();
bean = (JavaBean) element;
System.out.print("---->" + bean.getTime());
System.out.print("---->" + bean.getTitle());
System.out.println("----->" + bean.getUrl());
final URI uri = new URI(bean.getUrl());
final JFrame frame = new JFrame();
frame.setSize(350, 70);
frame.add(new JSeparator(SwingConstants.HORIZONTAL));
frame.setAlwaysOnTop(true);
frame.setUndecorated(true);
frame.setLayout(new GridBagLayout());
JButton cloesButton = new JButton("X");
JButton linkbutton = new JButton("links");
addComponent(frame, linkbutton, 0, 0, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH);
addComponent(frame, cloesButton, 1, 0, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH);
linkbutton.setText("<div>" + bean.getTitle() + "</div>" + "");
linkbutton.setBackground(Color.LIGHT_GRAY);
linkbutton.setHorizontalAlignment(SwingConstants.LEFT);
cloesButton.setFocusable(false);
linkbutton.setToolTipText(uri.toString());
frame.add(linkbutton);
frame.add(cloesButton);
frame.setVisible(true);
//Set Pop up at bottom - right
Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize();// size of the screen
Insets toolHeight = Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration());// height of the task bar
//frame.setLocation(scrSize.width - frame.getWidth(), scrSize.height - toolHeight.bottom - frame.getHeight());
frame.setLocation(scrSize.width - frame.getWidth(), scrSize.height - toolHeight.bottom - (frame.getHeight() * (n + 1)));
n++;
}

1 ответ

Определите JPanel вместо Frame в цикле и добавьте все JPanel в один кадр.

РЕДАКТИРОВАТЬ:

Что-то вроде этого:

JFrame frame = ...
while(...) { JPanel panel = new JPanel(); panel.add(buttons, etc) frame.add(panel);
}

licensed under cc by-sa 3.0 with attribution.