導航:首頁 > 編程語言 > 卡片布局java

卡片布局java

發布時間:2022-07-10 17:59:03

『壹』 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中用了卡片布局,怎麼設置組建的位置

你好,我剛剛也找了很久,我沒找到答案,後來我自己反復調試,現在知道了,
你需要
c1 = new CardLayout();
jp1 = new JPanel(c1);//最大的容器
//(這里假設你的卡片布局用的是c1,您修改為您自己的就行)
c1.setHgap(50);//調整距離左邊的距離
c1.setVgap(50);//調整距離頂部的距離
如有疑問,請評論留言,希望有所幫助。

『叄』 java卡片布局show的使用。下面代碼中LayoutDemo中「日記本」按鈕顯示TestFlowLayoutone 代碼

卡片布局裡面,好像只有一個布局。


另外對象的比較,不可以簡單地使用=,要使用對象.equals(object)






代碼是精簡過的,最大的區別在圖片中代碼的30幾行、60幾行,,,,,把內部類,放回到外面,一樣使用的。

『肆』 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卡片布局中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卡片布局,代碼求糾錯。

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

}

『柒』 java的卡片布局

JFrame
j=new
JFrame();
j.getContentPane().add("West",「您組件所在的面板")//這里不用setLayout,默認已經是BorderLayout
或者是用j.getContentPane().setLayout(null);再setBounds(坐標,坐標,長,寬);比較靈活,但是比較麻煩

『捌』 java卡片布局

我看了你的程序,幫你改完了,你看看吧。
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.CardLayout;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class NewCardLayout {
public static void main (String[] args){
Frame f = new Frame ("example");
final Panel p=new Panel();
final CardLayout cl=new CardLayout();
p.setLayout(cl);
Panel p1=new Panel();
p1.setLayout(new BorderLayout());
Panel p2=new Panel();
p2.setLayout(new BorderLayout());
Button b1=new Button("one");
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
cl.show(p,"card2");
}
});
p1.add(b1,BorderLayout.CENTER);
Button b2=new Button("two");
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
cl.show(p,"card1");
}
});
p2.add(b2,BorderLayout.CENTER);
p.add(p1, "card1");
p.add(p2, "card2");
f.add(p);
f.setBounds(100,100,250,250);
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}});
}
}

『玖』 java 中卡片布局,如何取到某一卡片上所有JTextField上後續寫入的值

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

閱讀全文

與卡片布局java相關的資料

熱點內容
awss3命令 瀏覽:356
百度店鋪客戶訂單手機加密 瀏覽:500
釘釘班群文件夾怎麼上傳文件 瀏覽:749
人社app怎麼解綁手機 瀏覽:101
caj文件夾打不開 瀏覽:475
什麼app可以將電量變色 瀏覽:692
解放出你的解壓抖音小游戲 瀏覽:345
什麼方式解壓比較好 瀏覽:266
erp是什麼伺服器 瀏覽:185
python中tmp 瀏覽:23
說明wpf加密過程 瀏覽:144
java讀取list 瀏覽:703
iis7gzip壓縮 瀏覽:40
有什麼安卓機打吃雞好 瀏覽:598
三星u盤加密狗 瀏覽:474
php函數的返回值嗎 瀏覽:587
國企穩定程序員 瀏覽:328
編程貓如何使用教程視頻 瀏覽:220
安卓遠端網頁如何打日誌 瀏覽:218
壓縮flash大小 瀏覽:993