実行時にJFrameの内容を変更する方法を知りたい。新しいJPanelを追加し、古いJPanelを削除する。実行時にJFrameのJPanelを変更する方法
0
A
答えて
-1
2
あなたは、フレーム内のアクティブなパネルを変更するCardLayout
の使用を検討することができます。実行時のJPanelを変更する
0
ここにコードです:
package stack;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class RemoveAndAddPanel implements ActionListener{
JFrame frame;
JPanel firstPanel;
JPanel secondPanel;
JPanel controlPanel;
JButton nextButton;
JPanel panelContainer;
JButton preButton;
JPanel contentPane;
public RemoveAndAddPanel() {
JFrame.setDefaultLookAndFeelDecorated(true);
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
firstPanel = new JPanel();
firstPanel.add(new JLabel("FirstPanel"));
firstPanel.setPreferredSize(new Dimension(100,100));
secondPanel = new JPanel();
secondPanel.add(new JLabel("Second panel"));
secondPanel.setPreferredSize(new Dimension(100,100));
panelContainer = new JPanel();
contentPane = new JPanel(new BorderLayout());
nextButton = new JButton("Next panel");
preButton = new JButton("PreButton");
controlPanel = new JPanel();
nextButton.addActionListener(this);
preButton.addActionListener(this);
preButton.setEnabled(false);
controlPanel.add(preButton);
controlPanel.add(nextButton);
panelContainer.setLayout(new BorderLayout());
panelContainer.add(firstPanel,BorderLayout.CENTER);
contentPane.add(controlPanel, BorderLayout.SOUTH);
contentPane.add(panelContainer,BorderLayout.CENTER);
frame.setContentPane(contentPane);
frame.setVisible(true);
frame.setSize(300,100);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == nextButton) {
panelContainer.removeAll();
panelContainer.setSize(0,0);
panelContainer.setSize(secondPanel.getSize());
panelContainer.add(secondPanel,BorderLayout.CENTER);
panelContainer.revalidate();
nextButton.setEnabled(false);
preButton.setEnabled(true);
}
if (e.getSource() == preButton) {
panelContainer.removeAll();
panelContainer.setSize(0,0);
panelContainer.setSize(firstPanel.getSize());
panelContainer.add(firstPanel,BorderLayout.CENTER);
nextButton.setEnabled(true);
preButton.setEnabled(false);
}
}
public static void main(String args[]) {
new RemoveAndAddPanel();
}
}
関連する問題
- 1. JFrame(レイアウトなし)をJPanelに変更
- 2. 実行時にJPanelのサイズを変更すると、Java
- 3. 制御のJPanelはJFrameのサイズ変更
- 4. jframeでjpanelを表示する方法
- 5. JFrameでJPanelを動的に変更する際の問題
- 6. 実行時にアンドロイドで実行時にEditTextのテキストを変更する方法
- 7. JFrameの実行中にJLayeredPaneを更新する方法は? java
- 8. 実行時にgridview行の色を変更する方法は?
- 9. JFrameとJPanel、次にJFrame
- 10. 実行時に変数タイプを変更する方法
- 11. サイズ変更時のJPanelのサイズ変更
- 12. JPanelの周りにJFrameをスケールする方法は?
- 13. 実行時にページの場所を変更する方法
- 14. 実行時にパラメータの値を変更する方法は?
- 15. 実行時にタブバーのタブを変更する方法
- 16. 実行時にSpringの@Scheduled fixedDelayを変更する方法
- 17. 実行時にSSRSレポートのデータベースを変更する方法
- 18. DataGrid(ローカリゼーション)の実行時にアプリケーションカルチャを変更する方法は?
- 19. 実行時にダイアログのタイトルを変更する方法は?
- 20. 実行時にWPFウィンドウのコンテンツを変更する方法
- 21. JPanelをJFrameに10回追加する方法
- 22. JPanelをJFrameに表示/非表示する方法は?
- 23. JFrameでJPanelを動的に再描画する方法は?
- 24. WPF + PRISM実行時にリージョンを変更する方法
- 25. 実行時にローカライズされたイメージを変更する方法
- 26. 実行時にpersistence.xmlを変更する方法
- 27. Symfony 3 - 実行時に設定値を変更する方法
- 28. Install4j:実行時にランチャーをコピーして変更する方法
- 29. 実行時にページフォーマットを変更する方法(jasperreport)
- 30. 実行時にプリズムモジュールを変更する方法
'JFrame.add()'、 'JFrame.remove()'の何が問題なのですが? – DNA
[JFrameの内部でJPanelを変更するにはどうすればよいですか?](http://stackoverflow.com/questions/218155/how-do-i-change-jpanel-inside-a-jframe-on-the -fly) – DNA
可能な複製http://stackoverflow.com/questions/9371460/how-can-i-stack-overlay-jpanels-in-java/9377623#9377623? – Juvanis