我在谷歌上搜索我的问题的答案并找到了它,但我不知道如何使用它。 q1。如何将图片添加到我的程序和文本中。 q2。当我打开新窗口时如何关闭旧窗口(我读到有关 dispole 和 setVisiable 但我不能这样做)。 我的程序:
public class Main extends JFrame implements ActionListener {
public static void main (String[] args){
new Main().setVisible(true);
}
private static String[] args; // OTWORZ inny program
private Main(){
super("PROJEKT"); // tytuł okna
setSize(600,600); // rozmiar okna
setResizable(false); // blokuj powiększenie manualne okna
setDefaultCloseOperation(EXIT_ON_CLOSE); // na krzyzuku zamknie
Toolkit zestaw = Toolkit.getDefaultToolkit(); // get defaulttoolkit , zestaw który pobierze
Dimension rozmiarEkranu = zestaw.getScreenSize(); // rozdzielczosc ekranu a nastepnie
int wysEkranu = rozmiarEkranu.height; // wstawi otworzy okno na środku
int szerEkranu = rozmiarEkranu.width;
// umiesc ramke na srodku ekranu i dodaj tytuł
setSize(szerEkranu / 2, wysEkranu / 2);
setLocation(szerEkranu / 4, wysEkranu / 4);
setLayout (new BorderLayout());
/*
* FlowLayout
* GridBagLayout
* GridLayout
* BorderLayout
*/
JButton klawisz = new JButton ("START");
klawisz.addActionListener (new Action1());
add(klawisz, BorderLayout.SOUTH);
JMenuBar bar = new JMenuBar(); // Górne MENU
JMenu file = new JMenu("Plik"); // wstaw PLIK do menu
JMenuItem close = new JMenuItem("Zamknij"); // do pliku wstaw zamknij
close.addActionListener(this);
file.addSeparator(); // wstaw przerwe
file.add(close);
bar.add(file);
setJMenuBar (bar);
}
static class Action1 implements ActionListener{
public void actionPerformed(ActionEvent e) {
Menu.main(args); // otwiera inny program
new Main().setVisible(false); // HERE I DONT KNOW HOW TO CLOSE OLD WINDOW
}
}
@Override
public void actionPerformed(ActionEvent e) {
String name = e.getActionCommand();
if(name.equals("Zamknij")) { // zamknij program jak wcisne przycisk zamknij
System.exit(0);
}
}
}
最佳答案
1) 不要为新图像创建新的 JFrame
,不要这样做,这些容器
会一直存在于内存中,直到当前 JVM 实例存在
2) 看看CardLayout ,那么你永远不需要类似的东西
关于java - 将图片添加到 SUPER 并关闭旧窗口以打开新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8779737/