「java两个按钮」java两个按钮有顺序执行
今天给各位分享java两个按钮的知识,其中也会对java两个按钮有顺序执行进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、Java如何添加两个按钮 我的只能显示一个,Java小白
- 2、Java 两个按钮不同状态切换
- 3、java怎样放两个按钮在窗体的正中间
- 4、怎么用java实现在同一界面点击两个按钮进入两个不同界面
Java如何添加两个按钮 我的只能显示一个,Java小白
btn2.setLocation(11,10);意思是x坐标11,你的第一个按钮width是30,所以第二个按钮压住了第一个按钮,btn2.setLocation(200,10);试试
Java 两个按钮不同状态切换
一: 首先对需求进行分析:
两个不同的按钮,
两个事件接收器,
当按钮被点击后, 事件接收器接受到点击信息, 然后进行事件处理逻辑---修改按钮的状态
二: 其次 对需要用的知识进行分析
A. 按钮状态的设置
按钮的状态-----不可见-----通过设置属性是否可见实现
JButton button1 = new JButton("按钮一");
button1.setVisible(false); //设置为不可见的状态
按钮的状态-----不可用-----通过设置属性是否用实现
JButton button2 = new JButton("按钮二");
button2.setEnabled(false); //设置为不可用的状态
B. 事件的接收器的设置, 已经书写
一般使用匿名内部类来书写接收器, 以及处理代码
button.addActionListener(new ActionListener() {//为按钮添加事件接收器
public void actionPerformed(ActionEvent e) {
//这里写事件处理代码
}
});
三: 效果图
当点击按钮一的效果图
当点击按钮二的效果图
四: 参考代码
//导入所需要的包
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FrameDemo extends JFrame {
//申明需要操作的按钮控件
private final JButton button1,button2;
public FrameDemo() {
setTitle("按钮测试窗口");//设置窗口标题
setSize(220, 80);//设置窗口的大小
setLocationRelativeTo(null);//设置窗口居于屏幕中央
setDefaultCloseOperation(EXIT_ON_CLOSE);//设置点击关闭时退出虚拟机
setLayout(new FlowLayout());//布局窗口为流式布局
button1 = new JButton("按钮一");
button2 = new JButton("按钮二");
button1.addActionListener(new ActionListener() {//为按钮一设置事件接收器
public void actionPerformed(ActionEvent e) {
button1.setVisible(false);//当按钮一被点击时,该按钮设置为不可见
}
});
button2.addActionListener(new ActionListener() {//为按钮二设置事件接收器
public void actionPerformed(ActionEvent e) {
button2.setEnabled(false);//当按钮二被点击时,该按钮设置为不可用
}
});
JPanel jp = new JPanel(new GridLayout(1, 2));
jp.add(button1);
jp.add(button2);
add(jp);
}
public static void main(String[] args) {
new FrameDemo().setVisible(true);//创建按钮窗口,并且设置为可见
}
}
五: 拓展思考
java 的源代码一般都遵循java 的规范,
属性的设置使用setXXX(...)方法
属性的获得使用getXxx(); 方法
使用的时候, 可以很方便的调用
所以, 我们平时开发java的时候也应该遵循java开发的规范. 会给我们的工作带来很多的便利
java怎样放两个按钮在窗体的正中间
JPanel 放入到BorderLayout.CENTER , 那么会自动填充满整个contentPane的中间, 而JPanel内部还是流式布局, 一行排满 自动换到下一行,从上到下. 所以按钮还是在最上面.
(把JPanel的背景色改成蓝色,就可以清晰的看到JPanel填满了窗口)
解决办法:
方法一: [绝对布局],通过设置panel 为绝对布局,然后设置按钮的宽高和位置
参考代码
import javax.swing.*;
public class JFDemo1 extends JFrame{
public JFDemo1() {
JPanel panel=new JPanel();
panel.setLayout(null);//设置为空布局.或者叫绝对布局
JButton messageButton = new JButton("OK");
JButton closeButton = new JButton("Cancel");
panel.add(messageButton);
panel.add(closeButton);
//粗略的指定下位置,如果要精确的位置,需要进行计算
closeButton.setSize(80, 30);// 指定宽高
closeButton.setLocation(160, 75);//指定位置
messageButton.setBounds(80, 75, 60,30);// 同时指定宽高和位置
add(panel);//默认位置就是BorderLayout.CENTER
setTitle("Demo");// 标题
setSize(320, 230);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序
}
public static void main(String[] args) {
new JFDemo1().setVisible(true);
}
}
方法二:[盒布局]
import javax.swing.*;
public class JFDemo2 extends JFrame{
public JFDemo2() {
JPanel pane=new JPanel();
BoxLayout layout=new BoxLayout(pane, BoxLayout.X_AXIS);// 水平的盒布局
pane.setLayout(layout);
JButton messageButton = new JButton("OK");
JButton closeButton = new JButton("Cancel");
pane.add(Box.createGlue()); // 挤占ok按钮和窗口左侧空间
pane.add(messageButton);
pane.add(Box.createHorizontalStrut(20));// 按钮之间的水平距离
pane.add(closeButton);
pane.add(Box.createGlue()); // 挤占cancel按钮和窗口右侧空间
add(pane);
setTitle("Demo");// 标题
setSize(320, 230);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序
}
public static void main(String[] args) {
new JFDemo2().setVisible(true);
}
}
总结: 推荐使用方法二,使用盒布局来实现.
一般不推荐使用绝对布局/空布局 来布局窗口, 因为不同的操作系统下显示的效果不完全一致.
并且还需要写大量的代码来计算组件的大小和位置, 当窗口放大和缩小时 还需要重新计算位置
怎么用java实现在同一界面点击两个按钮进入两个不同界面
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class ButtonJFrame extends JFrame {
ButtonJFrame() {
super("ButtonJFrame");
JButton btnA = new JButton("打开FrameA");
JButton btnB = new JButton("打开FrameB");
this.setLayout(new BorderLayout());
this.getContentPane().add(btnA, BorderLayout.WEST);
this.getContentPane().add(btnB, BorderLayout.EAST);
btnA.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new FrameA().setVisible(true);
}
});
btnB.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new FrameB().setVisible(true);
}
});
this.setSize(320, 240);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new ButtonJFrame();
}
class FrameA extends JFrame {
FrameA() {
super("FrameA");
this.setSize(160, 120);
}
}
class FrameB extends JFrame {
FrameB() {
super("FrameB");
this.setSize(160, 120);
}
}
}
java两个按钮的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java两个按钮有顺序执行、java两个按钮的信息别忘了在本站进行查找喔。