JAVA SWING界面问题 用CardLayout?最好不要用哦,它太不好用了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一 设计得太复杂 逻辑有问题,布局采用社么是无所谓的第二 在A里面写入SETBUTTONVALUE()方法 改方法对A里面的值操作 然后REPAINT() 主要是要理清主线 哪个是MAIN比较合适,在这个类里对其他窗体操作 关键是。我REPAINT(),界面根本没有反映啊。。我在A界面。开始点机了A按钮。然后A界面显示了B按钮。并且弹出了C界面。我在C界面完成了一些处理。然后关闭C。这时候A界面需要显示A按钮我已经逻辑混乱了感觉 我觉得是你应该在c界面的close()方法中,调用a界面的show()方法来显示A按钮! 先批判你一下:作为一个写程序的,怎么能够这么用语言?你描述界面用A、B,描述按钮又用A、B,其他怎么搞得清?换一个行不行?幸好鄙人领悟能力还好在JB里随便拖了一个,参考一下(通过编译)://A.javaimport java.awt.*;import javax.swing.*;import java.awt.BorderLayout;import java.awt.Rectangle;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;public class A extends JFrame{ private BorderLayout borderLayout1=new BorderLayout(); private JPanel jPanel1=new JPanel(); private CardLayout cardLayout1=new CardLayout(); private JPanel jPanel2=new JPanel(); private JPanel jPanel3=new JPanel(); private JButton A按钮=new JButton(); private JButton B按钮=new JButton(); public A () { try { jbInit(); } catch(Exception exception) { exception.printStackTrace(); } } private void jbInit () throws Exception { this.setBounds(300,200,400,300); getContentPane().setLayout(borderLayout1); jPanel2.setLayout(null); jPanel3.setLayout(null); A按钮.setBounds(new Rectangle(33, 121, 115, 37)); A按钮.setText("按钮A"); A按钮.addActionListener(new ActionListener() { public void actionPerformed (ActionEvent e) { A按钮_actionPerformed(e); } }); B按钮.setBounds(new Rectangle(227, 129, 136, 42)); B按钮.setText("按钮B"); B按钮.addActionListener(new ActionListener() { public void actionPerformed (ActionEvent e) { B按钮_actionPerformed(e); } }); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER); jPanel2.add(A按钮); jPanel1.add(jPanel2, "jPanel2"); jPanel3.add(B按钮); jPanel1.add(jPanel3, "jPanel3"); jPanel1.setLayout(cardLayout1); this.setVisible(true); } public static void main (String[] args) { A a=new A(); } public void A按钮_actionPerformed (ActionEvent e) { this.cardLayout1.next(this.jPanel1); } public void B按钮_actionPerformed (ActionEvent e) { C c=new C(this); } public void next() { this.cardLayout1.next(this.jPanel1); }} //C.javaimport java.awt.*;import javax.swing.*;import java.awt.BorderLayout;import java.awt.Rectangle;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;public class C extends JFrame{ private A a=null; private JButton jButton1=new JButton(); public C (A a) { this.a=a; try { jbInit(); } catch(Exception exception) { exception.printStackTrace(); } this.setVisible(true); } private void jbInit () throws Exception { this.setBounds(100,50,800,600); getContentPane().setLayout(null); jButton1.setBounds(new Rectangle(50, 111, 287, 44)); jButton1.setText("点击这里完成C的逻辑"); jButton1.addActionListener(new ActionListener() { public void actionPerformed (ActionEvent e) { jButton1_actionPerformed(e); } }); this.getContentPane().add(jButton1, null); } public void C的逻辑() { //这里执行C的逻辑 this.setVisible(false); a.next(); } public void jButton1_actionPerformed (ActionEvent e) { C的逻辑(); }} JDBC连接mysql数据库的问题 求S[N]数组中任意N-1个元素的最大乘积 求一个java程序 java题目,就一题,帮忙做一下! 同志们,我为java的swing搞了个皮肤 查询一个星期内数据 用什么函数取得checkbox被选或未选的值? java.util.Properties propertyNames方法 BufferedWriter大量数据写文件速度慢求救 Thinking in Java 第二版 CHM格式可供下载 谢谢了!!谁有Borland JBuilder2005或9.0的教程下载地址!!! 13道基础题
第二 在A里面写入SETBUTTONVALUE()方法 改方法对A里面的值操作 然后REPAINT()
主要是要理清主线 哪个是MAIN比较合适,在这个类里对其他窗体操作
你描述界面用A、B,描述按钮又用A、B,其他怎么搞得清?换一个行不行?幸好鄙人领悟能力还好在JB里随便拖了一个,参考一下(通过编译)://A.java
import java.awt.*;import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Rectangle;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class A extends JFrame
{
private BorderLayout borderLayout1=new BorderLayout();
private JPanel jPanel1=new JPanel();
private CardLayout cardLayout1=new CardLayout();
private JPanel jPanel2=new JPanel();
private JPanel jPanel3=new JPanel();
private JButton A按钮=new JButton();
private JButton B按钮=new JButton();
public A ()
{
try
{
jbInit();
}
catch(Exception exception)
{
exception.printStackTrace();
}
} private void jbInit ()
throws Exception
{
this.setBounds(300,200,400,300);
getContentPane().setLayout(borderLayout1);
jPanel2.setLayout(null);
jPanel3.setLayout(null);
A按钮.setBounds(new Rectangle(33, 121, 115, 37));
A按钮.setText("按钮A");
A按钮.addActionListener(new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
A按钮_actionPerformed(e);
}
});
B按钮.setBounds(new Rectangle(227, 129, 136, 42));
B按钮.setText("按钮B");
B按钮.addActionListener(new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
B按钮_actionPerformed(e);
}
});
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
jPanel2.add(A按钮);
jPanel1.add(jPanel2, "jPanel2");
jPanel3.add(B按钮);
jPanel1.add(jPanel3, "jPanel3");
jPanel1.setLayout(cardLayout1);
this.setVisible(true); } public static void main (String[] args)
{
A a=new A();
} public void A按钮_actionPerformed (ActionEvent e)
{
this.cardLayout1.next(this.jPanel1);
} public void B按钮_actionPerformed (ActionEvent e)
{
C c=new C(this);
} public void next()
{
this.cardLayout1.next(this.jPanel1);
}
}
import java.awt.*;
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Rectangle;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class C extends JFrame
{
private A a=null;
private JButton jButton1=new JButton(); public C (A a)
{
this.a=a;
try
{
jbInit();
}
catch(Exception exception)
{
exception.printStackTrace();
}
this.setVisible(true);
} private void jbInit ()
throws Exception
{
this.setBounds(100,50,800,600);
getContentPane().setLayout(null);
jButton1.setBounds(new Rectangle(50, 111, 287, 44));
jButton1.setText("点击这里完成C的逻辑");
jButton1.addActionListener(new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
jButton1_actionPerformed(e);
}
});
this.getContentPane().add(jButton1, null);
} public void C的逻辑()
{
//这里执行C的逻辑
this.setVisible(false);
a.next();
} public void jButton1_actionPerformed (ActionEvent e)
{
C的逻辑();
}
}