gpt4 book ai didi

java - 使用卡片布局进行验证

转载 作者:行者123 更新时间:2023-12-01 14:49:24 25 4
gpt4 key购买 nike

有一个 J 框架,其中我放置了 2 个面板,并且卡片布局已分配给两个面板

按图像 J 框架有 2 个面板,其中一个是

面板 Pane >>我要调用 panel1、panel2、panel3,其中所有 3 个面板都有一些控件,如 JtextField、jComboBox 等。

按钮 Pane >> 在此面板中,当按下下一个时,面板上有按钮“下一个”和“后退”(如果面板 Pane 显示 panel1,则)要验证的 panel1 控件

像这样enter image description here

代码如下

<p></p>

package Code;

/**
*
* @author Rohini
*/

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class InvoicePage extends JFrame implements ActionListener{

JLabel newInvoic, invoiceNol, invoiceNo;
JButton clinfoNext, payentryNext, termentryNext;
JButton clinfoBack, payentryBack, termentryBack;


JPanel buttonPane, clinfoBPane, payentryBPane, termentryBPane;
JPanel panelpane, client_info, invoice_entry, term_entry;

Container c = this.getContentPane();

CardLayout cardmain, cardbutton;

Font head = new Font("Times New Roman",Font.BOLD,20);
Font subheadb = new Font("Times New Roman",Font.BOLD,14);
Font subheadp = new Font("Times New Roman",Font.PLAIN,14);

public InvoicePage() throws HeadlessException {

super("Thane Bharat Sahakari Bank : New Invoice");

// initialization of variables
cardmain = new CardLayout();
cardbutton = new CardLayout();

newInvoic = new JLabel("New Invoice");
invoiceNol = new JLabel("Invoice No");
invoiceNo = new JLabel("DB Value of id");

clinfoNext = new JButton(" Next > > ");
payentryNext = new JButton(" Next > > ");
termentryNext = new JButton(" Next > > ");
clinfoBack = new JButton(" < < Back ");
payentryBack = new JButton(" < < Back ");
termentryBack = new JButton(" < < Back ");

buttonPane = new JPanel(cardbutton);
clinfoBPane = new JPanel(null);
payentryBPane = new JPanel(null);
termentryBPane = new JPanel(null);

panelpane = new JPanel(cardmain);
client_info = new clientInfo();
invoice_entry = new discription();
term_entry = new termentry();

// setting properties of variabels

panelpane.add(client_info,"Client_info");
panelpane.add(invoice_entry,"invoice_entry");
panelpane.add(term_entry,"term_entry");

buttonPane.add(clinfoBPane,"clinfoBpane");
buttonPane.add(payentryBPane,"payentryBPane");
buttonPane.add(termentryBPane,"termentryBPane");

clinfoBPane.add(clinfoBack);
clinfoBPane.add(clinfoNext);
payentryBPane.add(payentryBack);
payentryBPane.add(payentryNext);
termentryBPane.add(termentryBack);
termentryBPane.add(termentryNext);

newInvoic.setFont(head);
invoiceNol.setFont(subheadb);
invoiceNo.setFont(subheadp);

clinfoNext.addActionListener(this);
payentryNext.addActionListener(this);
termentryNext.addActionListener(this);
clinfoBack.addActionListener(this);
payentryBack.addActionListener(this);
termentryBack.addActionListener(this);

// setting Bounds
Bounds(0,0);

// Adding Components
c.add(newInvoic);
c.add(invoiceNol);
c.add(invoiceNo);
c.add(buttonPane);
c.add(panelpane);


// Form properties
cardbutton.show(buttonPane,"clinfoBpane");
cardmain.show(panelpane,"Client_info") ;
c.setLayout(null);
c.setBackground(Color.WHITE);
//clinfoBPane.setBackground(Color.WHITE);


this.setResizable(true);
this.setVisible(true);
setDefaultCloseOperation(3);
System.out.println("");
}
public void Bounds( int i, int j ){
if(i == 0){
newInvoic.setBounds(250,0,150,30);
invoiceNol.setBounds(400,30,100,25);
invoiceNo.setBounds(500,30,100,25);

buttonPane.setBounds(0,410,610,50);
panelpane.setBounds(0,50,610,350);
clinfoNext.setBounds(430,5,150,30);
clinfoBack.setBounds(25,5,150,30);
this.setSize(625,505);
this.setLocation(300,150);
}
else if(i == 1){
newInvoic.setBounds(350,0,150,30);
invoiceNol.setBounds(600,30,100,25);
invoiceNo.setBounds(700,30,100,25);

buttonPane.setBounds(0,440,830,50);
panelpane.setBounds(0,50,815,390);
if(j == 0){
payentryNext.setBounds(640,5,150,30);
payentryBack.setBounds(30,5,150,30);
}
else if(j == 1){
termentryNext.setBounds(640,5,150,30);
termentryBack.setBounds(30,5,150,30);
}
this.setSize(830,525);
this.setLocation(200,100);
}
else{

}
}
public void actionPerformed(ActionEvent ae){

if(ae.getSource() == clinfoNext){
cardbutton.show(buttonPane,"payentryBPane");
cardmain.show(panelpane,"invoice_entry") ;
Bounds(1,0);

}
else if(ae.getSource() == clinfoBack){
this.dispose();
Mainfrm mf = new Mainfrm();
mf.setVisible(true);
}
else if((ae.getSource() == payentryNext)){
Bounds(1,1);
cardbutton.show(buttonPane,"termentryBPane");
cardmain.show(panelpane,"term_entry") ;
}
else if(ae.getSource() == payentryBack){
Bounds(0,0);
cardbutton.show(buttonPane,"clinfoBpane");
cardmain.show(panelpane,"Client_info") ;
}
else if(ae.getSource() == termentryBack){
cardbutton.show(buttonPane,"payentryBPane");
cardmain.show(panelpane,"invoice_entry") ;
Bounds(1,0);
}
else if(ae.getSource() == termentryNext){
JOptionPane.showConfirmDialog(this,"Are you sure that the invoice is over","Confirmation", JOptionPane.YES_NO_CANCEL_OPTION, 0);

}
else{

}
}
public static void main(String []avi){

new InvoicePage();
}
}

最佳答案

是的!!我得到了答案

实际上外部面板变量需要具有公共(public)范围

&

(见上面的代码)

JPanel panelpane, client_info, invoice_entry, term_entry;

我已经创建了 JPanel 的实例并使用外部面板启动它,即

   client_info = new clientInfo();
invoice_entry = new discription();
term_entry = new termentry();

而不是面板正在做的事情

 JPanel panelpane, client_info, invoice_entry, term_entry;

通过尝试这个问题得到解决

  JPanel panelpane;
clientInfo client_info;
discription invoice_entry;

通过这个我们可以给actionListner

关于java - 使用卡片布局进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15037669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com