Java 使用swing进行KET测试项目的导航
我正在为这个测试项目收集资料。但真正困扰我的是这个页面导航,我不知道如何让它正常工作。我正在尝试使用CardsLayout。但它不能正常工作。我需要帮助如何设置这些窗格 在底部,我需要填写问题编号,首先我想我只会填写5个。当按下数字时,它将导航到由该数字标记的页面。“下一步”和“上一步”按钮导航+-一页,“结果”按钮进入最后一页,在该页中测试被汇总Java 使用swing进行KET测试项目的导航,java,swing,testing,navigation,Java,Swing,Testing,Navigation,我正在为这个测试项目收集资料。但真正困扰我的是这个页面导航,我不知道如何让它正常工作。我正在尝试使用CardsLayout。但它不能正常工作。我需要帮助如何设置这些窗格 在底部,我需要填写问题编号,首先我想我只会填写5个。当按下数字时,它将导航到由该数字标记的页面。“下一步”和“上一步”按钮导航+-一页,“结果”按钮进入最后一页,在该页中测试被汇总 看看下面给出的代码。它是设置和处理卡片布局的非常基本的程序,非常符合您所寻找的要求。我希望它能帮助您更好地理解CardLayout的使用和处理 im
看看下面给出的代码。它是设置和处理
卡片布局的非常基本的程序,非常符合您所寻找的要求。我希望它能帮助您更好地理解CardLayout
的使用和处理
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class CardLayoutDemo extends JFrame implements ActionListener
{
JButton next;
JButton prev;
JButton[] buttons ;
JPanel[] cards;
JPanel centerPanel;//Going to add all cards
JPanel lowerPanel;
int currentButton = 0;
public void prepareAndShowGUI()
{
next = new JButton("Next>>");
prev = new JButton("<<Previous");
buttons = new JButton[10];
String[] cardsName = {"ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","TEN"};
cards = new JPanel[10];
centerPanel= new JPanel();
lowerPanel = new JPanel();
centerPanel.setLayout(new CardLayout());
for (int i = 0; i < buttons.length ; i++ )
{
buttons[i] = new JButton(cardsName[i]);
buttons[i].addActionListener(this);
buttons[i].setActionCommand("CARDS"+i);
lowerPanel.add(buttons[i]);
cards[i] = new JPanel();
cards[i].setLayout(new BorderLayout());
cards[i].setBorder(BorderFactory.createTitledBorder("Card "+(i+1)));
cards[i].add(new JLabel(cardsName[i], SwingUtilities.CENTER));
centerPanel.add(cards[i], cardsName[i]);
}
getContentPane().add(centerPanel);
getContentPane().add(lowerPanel,BorderLayout.SOUTH);
getContentPane().add(next,BorderLayout.EAST);
getContentPane().add(prev,BorderLayout.WEST);
next.addActionListener(this);
prev.addActionListener(this);
prev.setEnabled(false);
if (buttons.length == 1)
{
next.setEnabled(false);
}
setSize(700,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent evt)
{
JButton clickedButton = (JButton)evt.getSource();
String command = clickedButton.getActionCommand();
if (command.startsWith("CARDS"))
{
CardLayout cl = (CardLayout)(centerPanel.getLayout());
cl.show(centerPanel, clickedButton.getText());
currentButton = Integer.parseInt(command.substring("CARDS".length()));
if (currentButton == 0)
{
prev.setEnabled(false);
if (buttons.length > 1)
{
next.setEnabled(true);
}
}
else if (currentButton == buttons.length - 1)
{
next.setEnabled(false);
if (buttons.length > 1)
{
prev.setEnabled(true);
}
}
else
{
if (buttons.length > 1)
{
next.setEnabled(true);
prev.setEnabled(true);
}
}
}
else
{
if ("Next>>".equals(clickedButton.getText()))
{
buttons[++currentButton].doClick();
if (currentButton == buttons.length - 1)
{
next.setEnabled(false);
prev.requestFocus();
}
prev.setEnabled(true);
}
else if ("<<Previous".equals(clickedButton.getText()))
{
buttons[--currentButton].doClick();
if (currentButton == 0)
{
prev.setEnabled(false);
next.requestFocus();
}
next.setEnabled(true);
}
}
}
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
CardLayoutDemo cld = new CardLayoutDemo();
cld.prepareAndShowGUI();
}
});
}
}
import java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
导入javax.swing.border.*;
公共类CardLayoutDemo扩展JFrame实现ActionListener
{
下一个按钮;
JButton prev;
JButton[]按钮;
JPanel[]卡;
JPanel centerPanel;//将添加所有卡
JPanel-lowerPanel;
int currentButton=0;
公共作废预处理显示GUI()
{
下一步=新的JButton(“下一步>>”);
prev=newjbutton(“>”).equals(clickedButton.getText())
{
按钮[++currentButton].doClick();
如果(currentButton==buttons.length-1)
{
next.setEnabled(false);
prev.requestFocus();
}
上一设置启用(真);
}
否则,如果(“一个JTabbedPane
不是更容易吗?你不必处理卡片交换等…在JTabbedPane上实现上一个/下一个是很简单的。你可以使用setTabPlacement(JTabbedPane.BOTTOM)
将选项卡移动到图片中的底部。我认为您需要提供一些示例代码,以便我们能够真正帮助您