java swing下一步/上一步分页、Word记录下一步按钮或按下按钮上的上一步返回
我正在为餐厅设计swing桌面应用程序,其中我需要菜单组前进或后退,需要两个按钮Next/Prev 只是我使下一个/上一个按钮向前或向后这是不正确的工作我的代码就像使分页按钮我的菜单组不正确的工作 以下图像屏幕截图 全局变量 菜单组功能代码 下一步按钮事件代码 需要上一个按钮事件 菜单类别加载java swing下一步/上一步分页、Word记录下一步按钮或按下按钮上的上一步返回,java,swing,jbutton,swingworker,swingbuilder,Java,Swing,Jbutton,Swingworker,Swingbuilder,我正在为餐厅设计swing桌面应用程序,其中我需要菜单组前进或后退,需要两个按钮Next/Prev 只是我使下一个/上一个按钮向前或向后这是不正确的工作我的代码就像使分页按钮我的菜单组不正确的工作 以下图像屏幕截图 全局变量 菜单组功能代码 下一步按钮事件代码 需要上一个按钮事件 菜单类别加载 private void加载页(int页){ this.pageIndex=page; 试一试{ //在此处自定义页面大小 Connection con=(Connection)connectionD
private void加载页(int页){
this.pageIndex=page;
试一试{
//在此处自定义页面大小
Connection con=(Connection)connectionDB.conDb();
String sl=“从'menu\u cat'LIMIT?OFFSET'中选择id、名称、翻译名称、btn\u颜色、文本\u颜色?”;
PreparedStatement pst=(PreparedStatement)con.PreparedStatement(sl);
pst.setInt(1,页面大小);
pst.setInt(2,页面大小*页面);
ResultSet rs=pst.executeQuery();
cat_面板。拆卸所有();
while(rs.next()){
totalRecord=rs.getInt(1);
字符串a1=rs.getString(“名称”);
int getid=rs.getInt(1);
字符串a00=rs.getString(“翻译的名称”);
int a3=rs.getInt(“BTN_颜色”);
int a4=rs.getInt(“文本颜色”);
PosButton btn=新PosButton();
btn.setText(“”+a1+“”+getid+“”);
btn.设置垂直对齐((内部)中心对齐);
应用组件(getComponentOrientation());
btn.SetFocuspaint(假);
btn.setFocusable(假);
btn.setToolTipText(a00);
btn.setRequestFocusEnabled(假);
btn.setMaximumSize(新尺寸(80,80));
btn.setPreferredSize(新尺寸(60,60));
btn.设置最小尺寸(新尺寸(80,80));
btn.背景(新颜色(a3,真));
btn.设置前景(新颜色(a4,真));
btn.SetFocuspaint(真);
btn.1(真实);
btn.setSelected(正确);
//字符串a2=rs.getString(2);
btn.设置水平对齐(旋转角点中心);
btn.setHorizontalTextPosition(AbstractButton.CENTER);
btn.setVerticalTextPosition(AbstractButton.BOTTOM);
//cat_面板设置布局(新的MIG布局(“填充,包裹10”);
//cat_面板=新JPanel(新MIG布局(“填充,包裹1,插入0”);
btn.addActionListener(新ActionListener(){
@凌驾
已执行的公共无效操作(操作事件e){
btn.setSelected(正确);
btn.isSelected();
loadgroup(getid);
//loadgroupss(getid);
System.out.println(a1+“:\t”);
}
});
类别面板添加(btn,“中心”);
//添加(cat_面板,“成长y”);
cat_面板重新喷漆();
cat_面板重新验证();
}
}捕获(SQLE异常){
}
}
当您需要学习新知识或修复无法正常工作的问题时,通常更容易在较小的范围内完成,而不是在您的应用程序上完成这符合SO在询问或回答时发布的要求
您的问题本质上是如何更改容器中的
JPanel
s,下面的代码仅演示了这一点,没有其他内容:
import java.awt.*;
import javax.swing.*;
public class CardLayoutPrevNextDemo extends JPanel {
private final CardLayout cLayout;
private final JPanel cardsPane;
private static int MAX_PAGES = 5;
private int topPageIndex = 0;
public CardLayoutPrevNextDemo(){
cardsPane = new JPanel();
cLayout = new CardLayout();
cardsPane.setLayout(cLayout);
addPages();
changePane();
JButton prevPage = new JButton("Prev");
prevPage.addActionListener(e -> showPrevPane());
JButton nextPage = new JButton("Next");
nextPage.addActionListener(e -> showNextPane());
JPanel buttonsPane = new JPanel(new BorderLayout());
buttonsPane.add(prevPage,BorderLayout.WEST);
buttonsPane.add(nextPage,BorderLayout.EAST);
setLayout(new BorderLayout());
add(cardsPane,BorderLayout.CENTER);
add(buttonsPane,BorderLayout.NORTH);
}
private void addPages() {
for(int i = 0; i < MAX_PAGES ; i++){
JPanel pane = new JPanel();
String pageName = String.valueOf(i);
setPreferredSize(new Dimension(400,200));
pane.add(new JLabel("Page # "+pageName));
cardsPane.add(pageName, pane);
}
}
void showNextPane() {
topPageIndex = topPageIndex + 1 >= MAX_PAGES ? 0: topPageIndex + 1;
changePane();
}
void showPrevPane() {
topPageIndex = topPageIndex - 1 < 0 ? MAX_PAGES -1 : topPageIndex - 1;
changePane();
}
void changePane() {
cLayout.show(cardsPane, String.valueOf(topPageIndex));
}
public static void main(String[] args) {
JFrame frame = new JFrame("Card Layout Prev Next Demo");
frame.setSize(400,250);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationByPlatform(true);
frame.add(new CardLayoutPrevNextDemo());
frame.pack();
frame.setVisible(true);
}
}
import java.awt.*;
导入javax.swing.*;
公共类CardLayoutPrevNextDemo扩展了JPanel{
私人最终信用卡发行;
私人最终JPanel cardsPane;
私有静态int MAX_PAGES=5;
私有int topPageIndex=0;
公共卡布局PrevNextDemo(){
cardsPane=新JPanel();
cLayout=新的CardLayout();
cardsPane.设置布局(cLayout);
addPages();
changePane();
JButton prevPage=新JButton(“Prev”);
addActionListener(e->showPrevPane());
JButton nextPage=新JButton(“下一步”);
addActionListener(e->showNextPane());
JPanel buttonpane=新的JPanel(新的BorderLayout());
添加(上一页,BorderLayout.WEST);
按钮平面。添加(下一页,边界布局。东);
setLayout(新的BorderLayout());
添加(cardsPane、BorderLayout.CENTER);
添加(按钮平面,边界布局。北);
}
私有void addPages(){
对于(int i=0;i=最大页数?0:topPageIndex+1;
changePane();
}
void showPrevPane(){
topPageIndex=topPageIndex-1<0?最大页数-1:topPageIndex-1;
changePane();
}
void changePane(){
cLayout.show(cardsPane,String.valueOf(topPageIndex));
}
公共静态void main(字符串[]args){
JFrame=新JFrame(“卡布局上一次演示”);
框架。设置尺寸(400250);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationByPlatform(真);
frame.add(新的CardLayoutPrevNextDemo());
frame.pack();
frame.setVisible(true);
}
}
您发布了很多代码,但忘记添加问题。ju
public void loadgroup(int category_id) {
// this.pageIndex1 = page;
try {
Connection con5 = connectionDB.conDb();
String s2 = "SELECT id, name,btn_color,text_color FROM `menu_group` where cat_id='" + category_id + "'";
PreparedStatement pst2 = con5.prepareStatement(s2);
ResultSet rs2 = pst2.executeQuery();
groupPnl.removeAll();
revalidate();
// Connection con4 = connectionDB.conDb();
// String test1 = "SELECT COUNT(*)as rowCounts from menu_group";
// PreparedStatement pst3 = con5.prepareStatement(test1);
// ResultSet rs3 = pst3.executeQuery();
// int dbss = rs3.getInt("rowCounts");
if (rs2.next() == false) {
groupPnl.removeAll();
groupPnl.revalidate();
groupPnl.repaint();
groupPnl.setVisible(false);
right.setVisible(false);
left.setVisible(false);
} else {
groupPnl.revalidate();
groupPnl.setVisible(true);
right.setVisible(true);
left.setVisible(true);
do {
// rs2.first();
String a1 = rs2.getString(2);
String a2 = rs2.getString(1);
int a3 = rs2.getInt("btn_color");
int a4 = rs2.getInt("text_color");
PosButton btn = new PosButton();
btn.setText(a1);
btn.setVerticalAlignment((int) JButton.CENTER_ALIGNMENT);
btn.applyComponentOrientation(getComponentOrientation());
btn.setFocusPainted(false);
btn.setFocusable(false);
btn.setRequestFocusEnabled(false);
btn.setMaximumSize(new Dimension(80, 80));
btn.setPreferredSize(new Dimension(40, 35));
btn.setMinimumSize(new Dimension(80, 80));
btn.setFocusPainted(true);
btn.setBorderPainted(true);
btn.setBackground(new Color(a3, true));
btn.setForeground(new Color(a4, true));
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
btn.setSelected(true);
System.out.println(a1 + ":");
btn.isSelected();
int idss = Integer.parseInt(a2);
// loadbtn();
}
});
//String a2 = rs.getString(2);
btn.setHorizontalAlignment(SwingConstants.CENTER);
btn.setHorizontalTextPosition(AbstractButton.CENTER);
btn.setVerticalTextPosition(AbstractButton.BOTTOM);
groupPnl.add(btn);
groupPnl.repaint();
groupPnl.revalidate();
}while (rs2.next());
}
} catch (SQLException e) {
e.getStackTrace();
}
}
try {
Connection con = connectionDB.conDb();
String sql = "select COUNT(id) as ids from menu_cat";
PreparedStatement pst = con.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
while (rs.next()) {
gid.setText(rs.getString("ids"));
}
double ab = Double.parseDouble(gid.getText());
double sm = ab / pageSize1;
int ch = (int) sm;
if (ch >= pageIndex1) {
loadgroup(pageIndex1++);
System.out.println(pageIndex1++);
} else {
pageIndex1 = 0;
loadgroup(pageIndex1++);
//nxt.setEnabled(false);
// pageIndex = 0;
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
pageIndex1 = 0;
loadPage(pageIndex1--);
nxt.setEnabled(true);
private void loadPage(int page) {
this.pageIndex = page;
try {
// Customize page size here
Connection con = (Connection) connectionDB.conDb();
String sl = "SELECT id , name,translated_name ,btn_color,text_color FROM `menu_cat` LIMIT ? OFFSET ? ";
PreparedStatement pst = (PreparedStatement) con.prepareStatement(sl);
pst.setInt(1, pageSize);
pst.setInt(2, pageSize * page);
ResultSet rs = pst.executeQuery();
cat_panel.removeAll();
while (rs.next()) {
totalRecord = rs.getInt(1);
String a1 = rs.getString("name");
int getid = rs.getInt(1);
String a00 = rs.getString("translated_name");
int a3 = rs.getInt("BTN_COLOR");
int a4 = rs.getInt("text_COLOR");
PosButton btn = new PosButton();
btn.setText("<html><body><center><p>" + a1 + "</center><p>" + getid + "</p></body></html>");
btn.setVerticalAlignment((int) CENTER_ALIGNMENT);
btn.applyComponentOrientation(getComponentOrientation());
btn.setFocusPainted(false);
btn.setFocusable(false);
btn.setToolTipText(a00);
btn.setRequestFocusEnabled(false);
btn.setMaximumSize(new Dimension(80, 80));
btn.setPreferredSize(new Dimension(60, 60));
btn.setMinimumSize(new Dimension(80, 80));
btn.setBackground(new Color(a3, true));
btn.setForeground(new Color(a4, true));
btn.setFocusPainted(true);
btn.setBorderPainted(true);
btn.setSelected(true);
//String a2 = rs.getString(2);
btn.setHorizontalAlignment(SwingConstants.CENTER);
btn.setHorizontalTextPosition(AbstractButton.CENTER);
btn.setVerticalTextPosition(AbstractButton.BOTTOM);
// cat_panel.setLayout(new MigLayout("fill, wrap 1 0"));
// cat_panel = new JPanel(new MigLayout("fill, wrap 1, insets 0"));
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
btn.setSelected(true);
btn.isSelected();
loadgroup(getid);
//loadgroupss(getid);
System.out.println(a1 + ":\t");
}
});
cat_panel.add(btn, "center");
//add(cat_panel, "grow y");
cat_panel.repaint();
cat_panel.revalidate();
}
} catch (SQLException e) {
}
}
import java.awt.*;
import javax.swing.*;
public class CardLayoutPrevNextDemo extends JPanel {
private final CardLayout cLayout;
private final JPanel cardsPane;
private static int MAX_PAGES = 5;
private int topPageIndex = 0;
public CardLayoutPrevNextDemo(){
cardsPane = new JPanel();
cLayout = new CardLayout();
cardsPane.setLayout(cLayout);
addPages();
changePane();
JButton prevPage = new JButton("Prev");
prevPage.addActionListener(e -> showPrevPane());
JButton nextPage = new JButton("Next");
nextPage.addActionListener(e -> showNextPane());
JPanel buttonsPane = new JPanel(new BorderLayout());
buttonsPane.add(prevPage,BorderLayout.WEST);
buttonsPane.add(nextPage,BorderLayout.EAST);
setLayout(new BorderLayout());
add(cardsPane,BorderLayout.CENTER);
add(buttonsPane,BorderLayout.NORTH);
}
private void addPages() {
for(int i = 0; i < MAX_PAGES ; i++){
JPanel pane = new JPanel();
String pageName = String.valueOf(i);
setPreferredSize(new Dimension(400,200));
pane.add(new JLabel("Page # "+pageName));
cardsPane.add(pageName, pane);
}
}
void showNextPane() {
topPageIndex = topPageIndex + 1 >= MAX_PAGES ? 0: topPageIndex + 1;
changePane();
}
void showPrevPane() {
topPageIndex = topPageIndex - 1 < 0 ? MAX_PAGES -1 : topPageIndex - 1;
changePane();
}
void changePane() {
cLayout.show(cardsPane, String.valueOf(topPageIndex));
}
public static void main(String[] args) {
JFrame frame = new JFrame("Card Layout Prev Next Demo");
frame.setSize(400,250);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationByPlatform(true);
frame.add(new CardLayoutPrevNextDemo());
frame.pack();
frame.setVisible(true);
}
}