如何让下一个按钮转到此GUI中的下一个Frame?我需要在我可以点击旁边的地方显示更多详细信息:
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class FilledFrameViewer
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
/*JButton button = new JButton*/
JButton nextButton = new JButton("NEXT");
JLabel label = new JLabel("Frame 1.");
JPanel panel = new JPanel();
panel.add(nextButton);
panel.add(label);
frame.add(panel);
final int FRAME_WIDTH = 300;
final int FRAME_HEIGHT = 100;
frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
frame.setTitle("A frame with two components");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
答案 0 :(得分:1)
啊,是的......而且你还需要在Next按钮中添加一些内容......
示例:
btnNext = new JButton();
btnNext.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
goNext();
{
private void goNext(){
NextFrame nextframe= new NextFrame(null);
nextframe.setVisible(true);
}
}
});
答案 1 :(得分:0)
如果要隐藏或显示框架,可以像这样使用
JFrame f1 =新JFrame(“第1帧”); JFrame f2 =新JFrame(“第2帧”);
隐藏f1,调用f1.setVisible(false); 要显示f2,请调用f2.setVisible(true);
答案 2 :(得分:0)
有点不清楚。您想将 JButton 移动到另一个 JFrame 吗?如果没有动态编程等,我认为你无法管理(我猜?)。
您应该查看来自Oracle http://docs.oracle.com/javase/tutorial/uiswing/
的Swing组件的教程看看你的评论。我同意多个 JFrame 是一个坏习惯。
修改强>
使用eventlistner(参见其他答案)并按照开关案例进行操作?那么你可以让它显示为对话框或更改 JFrame 中的 JLable 吗?
对话教程:http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html。 我认为你应该选择一个标签来改变它的文字。
JButton nextButton = new JButton("Next");
nextButton.addActionListener(new ActionListner(
private int counter = 0;
public void actionPerformed(ActionEvent e) {
counter++;
switch(counter){
case 1: somelable.setText("Your text here");
};
}));
我是徒手写的,但我觉得这样的东西会起作用吗?
答案 3 :(得分:0)
你必须在下一帧中编辑代码...... NextFrame的示例,
public class NextFrame
public static void main(String[] args)
{
private static FilledFrameViewer parentFrame; //ADD THIS FOR CONNECTION TO FIRST FRAME
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
NextFrame frame = new NextFrame(null); //CHANGES MADE HERE
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
public NextFrame(FilledFrameViewer f) { //CHANGES MADE HERE
this.parentFrame = f; //CHANGES MADE HERE
setTitle("Personal Assistant");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);