导航:首页 > 编程语言 > java卡片

java卡片

发布时间:2022-08-02 22:59:27

‘壹’ java卡片布局中show的正确使用方法

已修改,复制粘贴即可,
panelMain=newPanel(cl);//被设定为卡片布局的面板
修改如上即可


importjava.awt.BorderLayout;
importjava.awt.Button;
importjava.awt.CardLayout;
importjava.awt.FlowLayout;
importjava.awt.Frame;
importjava.awt.Label;
importjava.awt.Panel;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;

publicclassCeshiextendsFrame
{
PanelFpf=newPanelF();
PanelSps=newPanelS();
PanelpanelMain,panelXZ;
ButtonbtNext,btPrevious,bt1,bt2,bt3,bt4,bt5;
CardLayoutcl;
Booleanw=false;

publicCeshi()
{
cl=newCardLayout();
panelMain=newPanel(cl);//被设定为卡片布局的面板
panelXZ=newPanel();//构造放按钮的面板
btPrevious=newButton("上一页");
btNext=newButton("下一页");
bt1=newButton("1");
bt2=newButton("2");
//给定义为卡片布局的面板添加面板
panelMain.add(pf,"pf");
panelMain.add(ps,"ps");
panelXZ.add(btPrevious);
panelXZ.add(btNext);
panelXZ.add(bt1);
panelXZ.add(bt2);
btPrevious.addActionListener(newActionListener()
{
@Override
publicvoidactionPerformed(ActionEvente)
{
cl.previous(panelMain);
}
});
btNext.addActionListener(newActionListener()
{//下一页的按钮
publicvoidactionPerformed(ActionEvente)
{
cl.next(panelMain);
}
});
bt1.addActionListener(newActionListener()
{//跳转到第二个面板的按钮
publicvoidactionPerformed(ActionEvente)
{
cl.show(panelMain,"pf");
}
});
bt2.addActionListener(newActionListener()
{//跳转到第二个面板的按钮
publicvoidactionPerformed(ActionEvente)
{
cl.show(panelMain,"ps");
}
});
addWindowListener(newWindowAdapter()
{
publicvoidwindowClosing(WindowEventwevent)
{
if(w)
dispose();
else
System.exit(0);
}
});
panelXZ.setLayout(newFlowLayout());
setTitle("主界面");
setSize(800,600);
setLocationRelativeTo(null);
add(panelMain,BorderLayout.CENTER);//把设为卡片布局的面板放置在窗体中间
add(panelXZ,BorderLayout.SOUTH);//把带按钮的面板放置在底部
setVisible(true);
}

publicstaticvoidmain(Stringargs[])
{
newCeshi();
}
}

//第一个面板
classPanelFextendsPanel
{
publicPanelF()
{
add(newLabel("第一个面板"));
}
}

//第二个面板
classPanelSextendsPanel
{
publicPanelS()
{
add(newLabel("第二个面板"));
}
}

‘贰’ java 卡片布局问题

先添加一个面板,把布局设置成CardLayout然后再向这个面板中添加新的面板。。就可以了。。。然后面板的转换用按钮做,给按钮添加单击事件。

这是用面板布局做的一个简单示例,你可以看一下,在JBUilder里面写的,可能不能运行。但你可以借鉴一下。
package jiemian;

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.CardLayout;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;
import javax.swing.JRadioButton;
import javax.swing.JSpinner;
import javax.swing.ButtonGroup;
import javax.swing.JComboBox;
import javax.swing.JList;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.SpinnerNumberModel;
import javax.swing.JOptionPane;
import javax.swing.JCheckBox;

/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class Frame2 extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
CardLayout cardLayout1 = new CardLayout();
JPanel jPanel2 = new JPanel();
JPanel jPanel3 = new JPanel();
JPanel jPanel4 = new JPanel();
JLabel jLabel1 = new JLabel();
JTextField jTextField1 = new JTextField();
JLabel jLabel2 = new JLabel();
JPasswordField jPasswordField1 = new JPasswordField();
JButton jButton1 = new JButton();
JLabel jLabel3 = new JLabel();
JLabel jLabel4 = new JLabel();
JRadioButton jRadioButton1 = new JRadioButton();
JRadioButton jRadioButton2 = new JRadioButton();
JSpinner jSpinner1 = new JSpinner(new SpinnerNumberModel(25,18,55,1));
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
ButtonGroup buttonGroup1 = new ButtonGroup();
JLabel jLabel5 = new JLabel();
JLabel jLabel6 = new JLabel();
String[] ye={"学生","教室","工程师","医生"};
JComboBox jComboBox1 = new JComboBox(ye);
String[] gongzi={"1000以下","1000-2000","2000-3000","3000-5000","5000以上"};
JList jList1 = new JList(gongzi);
JButton jButton4 = new JButton();
JButton jButton5 = new JButton();
JLabel jLabel7 = new JLabel();
JCheckBox jCheckBox1 = new JCheckBox();
JCheckBox jCheckBox2 = new JCheckBox();
JCheckBox jCheckBox3 = new JCheckBox();
JCheckBox jCheckBox4 = new JCheckBox();

public Frame2() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}

/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(borderLayout1);
setSize(new Dimension(400, 300));
setTitle("step 1 of 3");
jPanel1.setLayout(cardLayout1);
jPanel2.setLayout(null);
jPanel3.setLayout(null);
jPanel4.setLayout(null);
jLabel1.setText("姓名:");
jLabel1.setBounds(new Rectangle(20, 24, 81, 31));
jTextField1.setBounds(new Rectangle(124, 23, 130, 33));
jLabel2.setText("密码:");
jLabel2.setBounds(new Rectangle(20, 81, 81, 30));
jPasswordField1.setBounds(new Rectangle(124, 79, 125, 31));
jButton1.setBounds(new Rectangle(126, 151, 100, 34));
jButton1.setText("下一步");
jButton1.addActionListener(new Frame2_jButton1_actionAdapter(this));
jLabel3.setText("性别");
jLabel3.setBounds(new Rectangle(34, 25, 89, 33));
jLabel4.setText("年龄");
jLabel4.setBounds(new Rectangle(34, 99, 89, 32));
jRadioButton1.setText("男");
jRadioButton1.setBounds(new Rectangle(136, 33, 65, 32));
jRadioButton2.setText("女");
jRadioButton2.setBounds(new Rectangle(207, 33, 65, 32));
jSpinner1.setBounds(new Rectangle(133, 96, 125, 36));
jButton2.setBounds(new Rectangle(160, 191, 93, 32));
jButton2.setText("下一步");
jButton2.addActionListener(new Frame2_jButton2_actionAdapter(this));
jButton3.setBounds(new Rectangle(38, 191, 89, 31));
jButton3.setText("上一步");
jButton3.addActionListener(new Frame2_jButton3_actionAdapter(this));
jLabel5.setText("职业");
jLabel5.setBounds(new Rectangle(31, 23, 93, 37));
jLabel6.setText("工资");
jLabel6.setBounds(new Rectangle(30, 61, 93, 33));
jComboBox1.setBounds(new Rectangle(115, 28, 112, 32));
jList1.setSelectedIndex(0);
jList1.setBounds(new Rectangle(113, 70, 112, 93));
jButton4.setBounds(new Rectangle(54, 180, 83, 37));
jButton4.setText("上一步");
jButton4.addActionListener(new Frame2_jButton4_actionAdapter(this));
jButton5.setBounds(new Rectangle(233, 181, 83, 36));
jButton5.setText("提交");
jButton5.addActionListener(new Frame2_jButton5_actionAdapter(this));
jLabel7.setText("爱好");
jLabel7.setBounds(new Rectangle(257, 28, 74, 30));
jCheckBox1.setText("音乐");
jCheckBox1.setBounds(new Rectangle(270, 56, 89, 30));
jCheckBox2.setText("体育");
jCheckBox2.setBounds(new Rectangle(270, 92, 87, 28));
jCheckBox3.setText("计算机");
jCheckBox3.setBounds(new Rectangle(270, 125, 82, 22));
jCheckBox4.setText("英语");
jCheckBox4.setBounds(new Rectangle(270, 153, 88, 24));
contentPane.add(jPanel1, java.awt.BorderLayout.CENTER);
jPanel1.add(jPanel2, "one");
jPanel2.add(jLabel1);
jPanel2.add(jTextField1);
jPanel2.add(jLabel2);
jPanel2.add(jPasswordField1);
jPanel2.add(jButton1);
jPanel1.add(jPanel3, "two");
jPanel3.add(jLabel3);
jPanel3.add(jLabel4);
jPanel3.add(jRadioButton1);
jPanel3.add(jRadioButton2);
jPanel3.add(jSpinner1);
jPanel3.add(jButton2);
jPanel3.add(jButton3);
jPanel4.add(jLabel5);
jPanel4.add(jComboBox1);
jPanel4.add(jList1);
jPanel4.add(jLabel6);
jPanel4.add(jLabel7);
jPanel4.add(jButton4);
jPanel4.add(jButton5);
jPanel4.add(jCheckBox1);
jPanel4.add(jCheckBox2);
jPanel4.add(jCheckBox3);
jPanel4.add(jCheckBox4);
buttonGroup1.add(jRadioButton1);
buttonGroup1.add(jRadioButton2);
jPanel1.add(jPanel4, "three");
}

public void jButton1_actionPerformed(ActionEvent e) {
cardLayout1.show(jPanel1,"two");
setTitle("step 2 of 3");
}

public void jButton3_actionPerformed(ActionEvent e) {
cardLayout1.show(jPanel1,"one");
setTitle("step 1 of 3");
}

public void jButton2_actionPerformed(ActionEvent e) {
cardLayout1.show(jPanel1,"three");//面板的转换
setTitle("step 3 of 3");
}

public void jButton4_actionPerformed(ActionEvent e) {
cardLayout1.show(jPanel1,"two");
setTitle("step 2 of 3");
}

public void jButton5_actionPerformed(ActionEvent e) {
String xinxi=new String();
xinxi+="姓名: ";
xinxi+=jTextField1.getText()+"\n";
xinxi+="性别: ";
if(jRadioButton1.isSelected()){
xinxi += "男 " + "\n";
if (jRadioButton2.isSelected()) {
xinxi+="女"+"\n";
}
}
xinxi+="年龄: ";
xinxi+=jSpinner1.getValue().toString()+"\n";
xinxi+="工资: ";
xinxi+=jComboBox1.getSelectedItem().toString()+"\n";
xinxi+="职业: ";
xinxi+=jList1.getSelectedValue().toString()+"\n";
xinxi+="爱好: "+"\n";
if(jCheckBox1.isSelected()){
xinxi+=" 音乐"+"\n";
}
if(jCheckBox2.isSelected()){
xinxi+=" 体育"+"\n";
}
if(jCheckBox3.isSelected()){
xinxi+=" 计算机"+"\n";
}
if(jCheckBox4.isSelected()){
xinxi+=" 英语"+"\n";
}

JOptionPane.showMessageDialog(this,xinxi);

}
}

class Frame2_jButton5_actionAdapter implements ActionListener {
private Frame2 adaptee;
Frame2_jButton5_actionAdapter(Frame2 adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.jButton5_actionPerformed(e);
}
}

class Frame2_jButton4_actionAdapter implements ActionListener {
private Frame2 adaptee;
Frame2_jButton4_actionAdapter(Frame2 adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.jButton4_actionPerformed(e);
}
}

class Frame2_jButton2_actionAdapter implements ActionListener {
private Frame2 adaptee;
Frame2_jButton2_actionAdapter(Frame2 adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.jButton2_actionPerformed(e);
}
}

class Frame2_jButton3_actionAdapter implements ActionListener {
private Frame2 adaptee;
Frame2_jButton3_actionAdapter(Frame2 adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.jButton3_actionPerformed(e);
}
}

class Frame2_jButton1_actionAdapter implements ActionListener {
private Frame2 adaptee;
Frame2_jButton1_actionAdapter(Frame2 adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}

‘叁’ JAVA 卡片布局

问题一:

这段代码中,包含了一个成员变量i和类Cvs的构造方法,请问一下,括号里的int j是什么?还有,i与j在之前都没有声明或者赋值过,那么这里的i和j的值又是什么?为什么?

答案一:

你的i,j都没有赋值,但是在用Cvs构造方法时候初始化了
你看
"for(int k=0;k<=9;k++)
{
cvs[k]=new Cvs(k); //在这呢,调用你的 Cvs(int j)构造
pnl.add(""+k,cvs[k]);
}"

这个时候 i,j,k就是一个值了i=j=k了

问题二:

for(int k=0;k<=9;k++)
{
cvs[k]=new Cvs(k);
pnl.add(""+k,cvs[k]);
}
这句话是不是在面板中添加了10个不同的画布?

答案二:

是的,对的

问题三:

后面的pnl.add(""+k,cvs[k]);为什么k前面要加一个空字符?

答案三:

你看看 k是个整数对吧,但是add()方法是不能用整数对象的,要转换成字符串对象,""+k就是相当与把k与一个空的字符串相加,这时候k就变成字符串了,懂吧,书上都有

问题四:

在开头建立Cvs的类对象时用了数组,是建立类对象么?为什么要用数组?

答案四:

是滴,用数组可以建立多个对象啊,而且方便.

问题五:

这句话的意义?

答案五:

这句话的意思就是建立10个不同的画布对象.

‘肆’ java 中卡片布局,如何取到某一卡片上所有JTextField上后续写入的值

JtextField text_x = new JtextField();
string str = text_x.getText();

‘伍’ JAVA卡片布局,代码求纠错。

public void actionPerformed(ActionEvent event) {
if(event.getSource()==Button1){
// car.next(cards);
car.first(cards);
}else{
car.last(cards);
// car.previous(cards);
}

}

‘陆’ java卡片布局show的使用。下面代码中LayoutDemo中“日记本”按钮显示TestFlowLayoutone 代码

卡片布局里面,好像只有一个布局。


另外对象的比较,不可以简单地使用=,要使用对象.equals(object)






代码是精简过的,最大的区别在图片中代码的30几行、60几行,,,,,把内部类,放回到外面,一样使用的。

‘柒’ java 卡片式布局切换

可以切换呢,但前提是,你首先要把你的卡片append到cardlayout中去,
java.awt.CardLayout.addLayoutComponent(Component comp, Object constraints) 将指定的组件添加到此卡片布局的内部名称表。 这个方法有两个参数,第一个参数是你的容器,第二个参数,是为卡片起的名字,我一般用String,做好这一步后,再用show方法,来切换

阅读全文

与java卡片相关的资料

热点内容
苹果手机文档安卓上怎么打开 浏览:525
如何做淘宝代理服务器 浏览:662
gz压缩文件夹 浏览:177
字母h从右往左跑的c语言编程 浏览:127
安卓手机如何拥有苹果手机横条 浏览:765
业余编程语言哪个好学 浏览:137
按照文件夹分个压缩 浏览:104
航空工业出版社单片机原理及应用 浏览:758
如何在电信app上绑定亲情号 浏览:376
安卓的怎么用原相机拍月亮 浏览:805
配音秀为什么显示服务器去配音了 浏览:755
c盘清理压缩旧文件 浏览:325
app怎么交付 浏览:343
图虫app怎么才能转到金币 浏览:175
如何做征文app 浏览:446
用什么app管理斐讯 浏览:169
安卓如何下载宝可梦剑盾 浏览:166
编译器开发属于哪个方向 浏览:940
megawin单片机 浏览:687
以色列加密货币监督 浏览:909