- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Eclipse 和 Window Builder。但是我无法在 Window Builder 中使用卡片布局。所以我开始输入自己的代码,现在我卡在显示第一张卡上,该卡显示正确,但在单击 jmenubar 中的 jmenuitem 时不会显示第二张卡或 jpanel。
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class Dashboard extends JFrame {
private JPanel contentPane;
private JTextField textFieldName, sitextFieldName;
private JTextField textFieldRollNo, sitextFieldRollNo;
private JTextField textFieldPhoneNo, sitextFieldPhoneNo;
Connection connection = null;
PreparedStatement ps = null;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Dashboard frame = new Dashboard();
frame.addComponentToFrame(frame.getContentPane());
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
protected void addComponentToFrame(Container containerPane) {
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu mnStudent = new JMenu("Student");
menuBar.add(mnStudent);
JMenuItem mntmStudentRegistration = new JMenuItem("Student Registration");
mnStudent.add(mntmStudentRegistration);
mntmStudentRegistration.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CardLayout cl = (CardLayout)(contentPane.getLayout());
cl.show(contentPane, (String)e.getActionCommand());
}
});
JMenuItem mntmStudentInformation = new JMenuItem("Student Information");
mnStudent.add(mntmStudentInformation);
JMenu mnEmployee = new JMenu("Employee");
menuBar.add(mnEmployee);
JMenuItem mntmEmployeeRegistration = new JMenuItem("Employee Registration");
mnEmployee.add(mntmEmployeeRegistration);
JMenuItem mntmEmployeeInformation = new JMenuItem("Employee Information");
mnEmployee.add(mntmEmployeeInformation);
//StudentRegistration items starts here
JPanel jpStudentRegistration = new JPanel(new GridLayout(0,2));
JLabel lblName = new JLabel("Name");
lblName.setBounds(50, 50, 47, 25);
jpStudentRegistration.add(lblName);
textFieldName = new JTextField();
textFieldName.setColumns(10);
textFieldName.setBounds(127, 50, 100, 20);
jpStudentRegistration.add(textFieldName);
JLabel lblRollNo = new JLabel("RollNo");
lblRollNo.setBounds(50, 81, 47, 25);
jpStudentRegistration.add(lblRollNo);
textFieldRollNo = new JTextField();
textFieldRollNo.setColumns(10);
textFieldRollNo.setBounds(127, 81, 100, 20);
jpStudentRegistration.add(textFieldRollNo);
JLabel lblPhoneNo = new JLabel("PhoneNo");
lblPhoneNo.setBounds(50, 112, 47, 25);
jpStudentRegistration.add(lblPhoneNo);
textFieldPhoneNo = new JTextField();
textFieldPhoneNo.setColumns(10);
textFieldPhoneNo.setBounds(127, 112, 100, 20);
jpStudentRegistration.add(textFieldPhoneNo);
JButton btnSubmit = new JButton("Submit");
btnSubmit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/studentinformationsystem","root","");
String query = "insert into student(Name, RollNo, PhoneNo) values (?,?,?)";
PreparedStatement ps = connection.prepareStatement(query);
ps.setString(1, textFieldName.getText());
ps.setString(2, textFieldRollNo.getText());
ps.setString(3, textFieldPhoneNo.getText());
ps.execute();
JOptionPane.showMessageDialog(null, "Data Saved");
ps.close();
} catch(Exception e1){
System.out.println(e1.getMessage());
}
}
});
btnSubmit.setBounds(50, 148, 89, 23);
jpStudentRegistration.add(btnSubmit);
//StudentRegistration items ends here
//StudentInformation items starts here
JPanel jpStudentInformation = new JPanel(new GridLayout(0,2));
JLabel silblName = new JLabel("Name");
silblName.setBounds(50, 50, 47, 25);
jpStudentInformation.add(silblName);
sitextFieldName = new JTextField();
sitextFieldName.setColumns(10);
sitextFieldName.setBounds(127, 50, 100, 20);
jpStudentInformation.add(sitextFieldName);
JLabel silblRollNo = new JLabel("RollNo");
silblRollNo.setBounds(50, 81, 47, 25);
jpStudentInformation.add(silblRollNo);
sitextFieldRollNo = new JTextField();
sitextFieldRollNo.setColumns(10);
sitextFieldRollNo.setBounds(127, 81, 100, 20);
jpStudentInformation.add(sitextFieldRollNo);
JLabel silblPhoneNo = new JLabel("PhoneNo");
silblPhoneNo.setBounds(50, 112, 47, 25);
jpStudentInformation.add(silblPhoneNo);
sitextFieldPhoneNo = new JTextField();
sitextFieldPhoneNo.setColumns(10);
sitextFieldPhoneNo.setBounds(127, 112, 100, 20);
jpStudentInformation.add(sitextFieldPhoneNo);
JButton btnRefresh = new JButton("Refresh");
btnRefresh.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/studentinformationsystem","root","");
String query = "select * from student";
PreparedStatement ps = connection.prepareStatement(query);
//ps.setString(1, textFieldName.getText());
//ps.setString(2, textFieldRollNo.getText());
//ps.setString(3, textFieldPhoneNo.getText());
ps.execute();
JOptionPane.showMessageDialog(null, "Data Refreshed");
ps.close();
} catch(Exception e1){
System.out.println(e1.getMessage());
}
}
});
btnRefresh.setBounds(50, 148, 89, 23);
jpStudentInformation.add(btnRefresh);
//StudentInformation items ends here
contentPane = new JPanel(new CardLayout());
JPanel jpanel = new JPanel(new GridLayout(0,2));
contentPane.add(jpanel, "");
contentPane.add(jpStudentRegistration, "Student Registration");
contentPane.add(jpStudentInformation, "Student Information");
containerPane.add(contentPane, BorderLayout.PAGE_START);
}
/**
* Create the frame.
*/
public Dashboard() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
}
}
最佳答案
您尚未将 ActionListener
添加到 mntmStudentInformation
mntmStudentRegistration.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CardLayout cl = (CardLayout) (contentPane.getLayout());
cl.show(contentPane, (String) e.getActionCommand());
}
});
JMenuItem mntmStudentInformation = new JMenuItem("Student Information");
mntmStudentInformation.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CardLayout cl = (CardLayout) (contentPane.getLayout());
cl.show(contentPane, (String) e.getActionCommand());
}
});
关于java - CardLayout gui错误eclipse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29294722/
嗨,我正在使用表单做一个小项目。目前我使用了 netbeans,但我的类变得非常复杂,因为所有 jpanel ie 卡都在一个类中,这是一个框架。我被要求简化。 我的问题是如果我把一个 jpanel
是否有一种优雅的方法可以用指向另一个对象的新引用替换添加到 CardLayout 中的对象的引用。我不知道现在我是否想得好,但我只想得到反馈。 最佳答案 而不是 bankAccPanel 直接添加将其
在我的项目中,我在 JFrame 中有一个 JPanel (bottomPanel) 需要交换,因此我在 BottomPanel 上使用 CardLayout。 在我的父 JFrame 中,我基本上在
我想熟悉 CardLayout,所以我正在制作一个模拟游戏菜单。该菜单应该有三个按钮,但布局部分很简单。 所以,我想做的是用带有三个按钮的菜单启动它。单人游戏按钮应该将用户看到的内容更改为单个按钮,这
我是java初学者。在第二个卡片面板中,用户名和密码对齐不正确。有什么办法可以解决吗?我还想知道使用多个框架的缺点是什么。 import java.awt.*; import java
我正在尝试编写一个简短的程序,它有一个带有标题的主页和 4 个按钮,其中 3 个按钮将离开主屏幕并转到一个新页面,您可以在其中相应地输入信息。我开始使用拖放编辑器,但通过论坛发现我应该使用卡片布局,而
这是我的 SSCE(尽管分为三个单独的类(class))。 启动.java public class Startup { public static void main(String args
每当我感觉自己已经学到了很多关于 Java 的知识时,我就会突然遇到一堵砖墙,让我感觉自己像个十足的白痴。今天的大问题是 CardLayout。至少我终于通过在字段列表中实例化 buttonsCard
我正在使用 Eclipse 和 Window Builder。但是我无法在 Window Builder 中使用卡片布局。所以我开始输入自己的代码,现在我卡在显示第一张卡上,该卡显示正确,但在单击 j
有没有办法告诉使用 CardLayout 的 JPanel 在哪里添加组件? 假设我在框架中央有一个这样的面板,并且我想在该面板内显示 3 个组件。这可能吗? 最佳答案 当然,这很容易。只需将 JPa
我在 CardLayout 中放置了一堆面板,其中第 n 面板取决于 (n - 1)th 面板。由于使用 CardLayout,您必须事先初始化并添加所有面板。因此,它使得管理状态变得比必要的更加困难
我制作了一个简单的程序,几乎可以完成所有操作,除了返回到第一个面板的开关之外。因此,如果我单击“Druck”按钮,它将把钱从一个银行帐户转移到另一个银行帐户,然后切换到第二个面板,其中显示两个帐户的余
我正在关注 YouTube 上关于 CardLayout 的教程。我下载了the original code ,效果很好。但对于我试图制作的程序,我需要一个单独的类来运行应用程序(即仅具有 main
我有一个已经运行并可以运行的游戏,我想为其添加一个标题屏幕。我正在尝试添加 CardLayout 以便在游戏和标题屏幕之间轻松切换。我当前的问题是没有显示任何内容。这是一张图片:/image/AooM
我创建了使用多个面板的应用程序,所以我选择了cardLayout。问题是,当执行以下代码时,在 UserInterface 方法 SinglePlayer() 中会发生一些奇怪的事情。我使用命令 fr
我正在为一个相当简单的棋盘游戏制作我的第一个 GUI。除了游戏 View 之外,我还需要主菜单和其他一些 View 。不幸的是,我的 GUI 看起来比早上更难看,因为整个菜单结构都在一个类中。我使用卡
这是我第一次尝试使用 Cardlayout 运行代码。这是 add 方法的异常(空指针)。不过,我也尝试弄清楚如何设计卡片布局,例如卡片并排或一张在下。我更喜欢后者。我已经尝试更改我的代码并阅读有关类
所以我有一个带有 CardLayout 的 JPanel。正如预期的那样,此 CardLayout 管理框架中面板的切换。切换是通过两个按钮完成的:“后退”和“下一步”。 我想知道当它位于最后一张卡上
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我知道这个问题之前已经被问过,但我似乎无法让答案起作用,也不理解它们。 我想做的是交换按钮单击的面板。这是我的主要功能: public class CreateWindow extends JFram
我是一名优秀的程序员,十分优秀!