版权声明:@YDDUONG https://blog.csdn.net/y_dd6011/article/details/86375040
一、实验内容
1)编程:创建有一个文本框和三个按钮的小程序。当按下每个按钮时,使不同的文字显示在文本框中。
2)编程:创建一用户登录界面,接受用户输入的帐号和密码,给三次输入机会。
3)编程:编写成人标准身高和体重互查的程序。身高和体生在两个不同的文本框中输入,要求输入一个。输入身高则输出体重,输入体重则输出身高。用一个按钮启动互查。互查的公式为: 体重=身高-100。
4)编程:创建三个JSlider滚动条和一个JLabel标签对象,滚动条用来调整红、绿、蓝三色的比例,每个滚动条加标题边界、设置刻度 自定)和标注。当拖动滑块修改三色比例时,变化标签的背景色。
5)编程:创建一个文本框、三个单选按钮、一个标签和一个按钮,文本框用来输入自然数N,根据选择单选按钮的不同,分别计算:1+2+…N或1*2*…N或1+1/2+1/3+…1/N,计算结果在标签中显示。
二、实验代码
1、OneQuestion.java
package exceptioneight;
import java.awt.Container;
import java.awt.FlowLayout;
import static java.awt.FlowLayout.CENTER;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
/**
*
* @author 31621
*/
public class OneQuestion extends JFrame{
private JPanel panel = new JPanel();
private JPanel pane = new JPanel();
private JTextArea textArea = new JTextArea(5, 30);//指定初始文字和宽度
private JButton textOne = new JButton("文本一");
private JButton textTwo = new JButton("文本二");
private JButton textThree = new JButton("文本三");
public OneQuestion() {
super("显示不同文本");
//setBounds(600, 400, 500, 200);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//关闭窗口,不结束程序
BoxLayout box = new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS);
setLayout(box);//容器布局为:方框垂直布局
//控件属性
panel.setLayout(new FlowLayout(CENTER));
pane.setLayout(new FlowLayout(CENTER));
textArea.setEditable(false);//文本框不可编辑
textArea.setLineWrap(true);
textArea.setText(" Hello world!");
//事件
textOne.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
textArea.setText("文本一111111111111");
}
});
textTwo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
textArea.setText("文本二2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222");
}
});
textThree.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
textArea.setText("文本三33333333333333");
}
});
//布局
panel.add(textArea);
pane.add(textOne);
pane.add(textTwo);
pane.add(textThree);
add(panel);
add(pane);
pack();
setLocation(720, 260);
setVisible(true);
}
}
2、TwoQuestion.java
package exceptioneight;
import java.awt.FlowLayout;
import static java.awt.FlowLayout.CENTER;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
/**问题二:
* 创建一用户登录界面,接受用户输入的帐号和密码,给三次输入机会。
*/
public class TwoQuestion extends JFrame{
private int count = 3;//记录登录的次数
private JLabel jl1 = new JLabel("用户名:");
private JLabel jl2 = new JLabel(" 密码 :");
private JTextField jtf1 = new JTextField(16);
private JPasswordField jpf1 = new JPasswordField(16);
private JButton jb1 = new JButton("登录");
private JPanel jp1 = new JPanel();
private JPanel jp2 = new JPanel();
private FlowLayout fl1 = new FlowLayout(CENTER);
private BoxLayout bl1 = new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS);
public TwoQuestion() {
super("登录");
setLayout(bl1);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//关闭窗口,不结束程序
jp1.setLayout(fl1);
jp2.setLayout(fl1);
//控件属性
//事件
jb1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String acc = "yudong";
String pass = "yudong";
String account = jtf1.getText();
char[] password = jpf1.getPassword();
String newPass = new String(password);
if(count > 0) {
if(account.equals(acc) && pass.equals(newPass)) {
JOptionPane.showMessageDialog(null, "登录成功");
} else {
count--;
JOptionPane.showMessageDialog(null, "登录失败!还剩"+count+"次机会登录!");
}
// if(count == 0) {//可以关闭按钮
// jb1.setEnabled(false);
// }
} else {
JOptionPane.showMessageDialog(null, "拒绝登录!您超过3次登录失败!");
}
}
});
//布局
jp1.add(jl1);
jp1.add(jtf1);
jp2.add(jl2);
jp2.add(jpf1);
add(jp1);
add(jp2);
add(jb1);
pack();
setLocation(720, 260);
setVisible(true);
}
}
3、ThreeQuestion.java
package exceptioneight;
import java.awt.FlowLayout;
import static java.awt.FlowLayout.CENTER;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
/**编程三:
* 编写成人标准身高和体重互查的程序。
* 身高和体生在两个不同的文本框中输入,要求输入一个。
* 输入身高则输出体重,输入体重则输出身高。
* 用一个按钮启动互查。互查的公式为: 体重=身高-100。
*/
public class ThreeQuestion extends JFrame{
private JLabel jl1 = new JLabel("身高:");
private JLabel jl2 = new JLabel("体重:");
private JTextField jtf1 = new JTextField(16);
private JTextField jtf2 = new JTextField(16);
private JButton jb1 = new JButton("开始转换");
private JPanel jp1 = new JPanel();
private JPanel jp2 = new JPanel();
private JPanel jp3 = new JPanel();
private FlowLayout fl1 = new FlowLayout(CENTER);
private BoxLayout bl1 = new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS);
public ThreeQuestion() {
super();
setLayout(bl1);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//关闭窗口,不结束程序
jp1.setLayout(fl1);
jp2.setLayout(fl1);
jp3.setLayout(fl1);
//控件属性
//事件
jb1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String height = jtf1.getText();
String weight = jtf2.getText();
if(!height.equals("")) {
int h = Integer.parseInt(height);
jtf2.setText(String.valueOf((h - 100)));
} else {
int w = Integer.parseInt(weight);
jtf1.setText(String.valueOf((w + 100)));
}
}
});
//布局
jp1.add(jl1);
jp1.add(jtf1);
jp2.add(jl2);
jp2.add(jtf2);
jp3.add(jb1);
add(jp1);
add(jp2);
add(jp3);
pack();
setLocation(720, 260);
setVisible(true);
}
}
4、NewFourQuestion.java
package exceptioneight;
import java.awt.Color;
import java.awt.FlowLayout;
import static java.awt.FlowLayout.CENTER;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;
import java.util.logging.Logger;
//import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
/**编程四:
* 创建三个JSlider滚动条和一个JLabel标签对象,
* 滚动条用来调整红、绿、蓝三色的比例,每个滚动条加标题边界、设置刻度(自定)和标注。
* 当拖动滑块修改三色比例时,变化标签的背景色。
*/
public class NewFourQuestion extends JFrame{
JLabel jl0 = new JLabel(" ");
JLabel jl1 = new JLabel("红:");
JLabel jl2 = new JLabel("绿:");
JLabel jl3 = new JLabel("蓝:");
JSlider js1 = new JSlider(0, 255);//设置最小值和最大值
JSlider js2 = new JSlider(0, 255);
JSlider js3 = new JSlider(0, 255);
JPanel jp0 = new JPanel();
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
FlowLayout fl = new FlowLayout(CENTER);
public NewFourQuestion() {
super("RGB");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//关闭窗口,不结束程序
BoxLayout box = new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS);
setLayout(box);//容器布局为:方框垂直布局
//属性:
jp0.setLayout(fl);//面板布局
jp1.setLayout(fl);
jp2.setLayout(fl);
jp3.setLayout(fl);
js1.setMajorTickSpacing(50);//设置滚动条
js1.setMinorTickSpacing(10);
js1.setPaintTicks(true);
js1.setPaintLabels(true);
js2.setMajorTickSpacing(50);
js2.setMinorTickSpacing(20);
js2.setPaintTicks(true);
js2.setPaintLabels(true);
js3.setMajorTickSpacing(50);
js3.setMinorTickSpacing(30);
js3.setPaintTicks(true);
js3.setPaintLabels(true);
jl0.setOpaque(true);//不透明
jl0.setBackground(new Color(150, 150, 150));
js1.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
int r = js1.getValue();
int g = js2.getValue();
int b = js3.getValue();
jl0.setBackground(new Color(r, g, b));
}
});
js2.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
int r = js1.getValue();
int g = js2.getValue();
int b = js3.getValue();
jl0.setBackground(new Color(r, g, b));
}
});
js3.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
int r = js1.getValue();
int g = js2.getValue();
int b = js3.getValue();
jl0.setBackground(new Color(r, g, b));
}
});
//布局
jp0.add(jl0);
jp1.add(jl1);
jp1.add(js1);
jp2.add(jl2);
jp2.add(js2);
jp3.add(jl3);
jp3.add(js3);
add(jp0);
add(jp1);
add(jp2);
add(jp3);
pack();
setLocation(720, 260);
setVisible(true);
}
}
5、NewFiveQuestion.java
package exceptioneight;
import java.awt.Color;
import java.awt.FlowLayout;
import static java.awt.FlowLayout.CENTER;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
/**编程五:
*创建一个文本框、三个单选按钮、一个标签和一个按钮,
* 文本框用来输入自然数N,根据选择单选按钮的不同,
* 分别计算:1+2+…N或1*2*…N或1+1/2+1/3+…1/N,
* 计算结果在标签中显示。
*/
public class NewFiveQuestion extends JFrame {
private JTextField jTextField1 = new JTextField(16);
private JLabel jLabel1 = new JLabel("请输入自然数N:");
private JLabel jLabel2 = new JLabel("计算结果为: ");
private JPanel jpane0 = new JPanel();
private JPanel jpane1 = new JPanel();
private JPanel jpane2 = new JPanel();
private JPanel jpane3 = new JPanel();
private ButtonGroup buttonGroup = new ButtonGroup();//单选按钮组
private JRadioButton jRadioButton1 = new JRadioButton("1+2+…N");
private JRadioButton jRadioButton2 = new JRadioButton("1*2*…N");
private JRadioButton jRadioButton3 = new JRadioButton("1+1/2+1/3+…1/N");
private FlowLayout fl = new FlowLayout(CENTER);
private BoxLayout box = new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS);
private String nStr;
private int nInt;
public NewFiveQuestion() {
super();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//关闭窗口,不结束程序
setLayout(box);//容器布局为:方框垂直布局
//属性
jpane1.setLayout(fl);
jpane2.setLayout(fl);
jpane3.setLayout(fl);
buttonGroup.add(jRadioButton1);
buttonGroup.add(jRadioButton2);
buttonGroup.add(jRadioButton3);
//事件
jRadioButton1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
nStr = jTextField1.getText();
if(!nStr.equals("") ) {
nInt = Integer.parseInt(nStr);
} else {
nInt = -1;
}
jLabel2.setText("计算结果为:" + String.valueOf(One(nInt)));
}
});
jRadioButton2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
nStr = jTextField1.getText();
if(!nStr.equals("") ) {
nInt = Integer.parseInt(nStr);
} else {
nInt = -1;
}
jLabel2.setText("计算结果为:" + String.valueOf(Two(nInt)));
}
});
jRadioButton3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
nStr = jTextField1.getText();
if(!nStr.equals("") ) {
nInt = Integer.parseInt(nStr);
} else {
nInt = -1;
}
jLabel2.setText("计算结果为:" + String.valueOf(Three(nInt)));
}
});
//布局
jpane0.add(jLabel1);
jpane1.add(jTextField1);
jpane2.add(jRadioButton1);
jpane2.add(jRadioButton2);
jpane2.add(jRadioButton3);
jpane3.add(jLabel2);
add(jpane0);
add(jpane1);
add(jpane2);
add(jpane3);
pack();
setLocation(720, 260);
setVisible(true);
}
/**
* 1+2+…N
*/
public int One(int n) {
if(n < 1) return 0;
int sum = 0;
for(int i = 1; i <= n; i++){
sum += i;
}
return sum;
}
/**
* 1*2*…N
*/
public int Two(int n) {
if(n < 1) return 0;
int sum = 1;
for(int i = 1; i <= n; i++){
sum *= i;
}
return sum;
}
/**
* 1+1/2+1/3+…1/N
*/
public double Three(int n) {
if(n < 1) return 0;
double sum = 0;
for(int i = 1; i <= n; i++){
sum += 1.0/i;
}
return sum;
}
}
6、ExceptionEight.java
package exceptioneight;
import java.awt.FlowLayout;
import static java.awt.FlowLayout.CENTER;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
/**
*实验八 主程序
*/
public class ExceptionEight extends JFrame{
private JTextArea textArea = new JTextArea(13, 50);//指定初始文字和宽度
private JButton jButton1 = new JButton("编程一");
private JButton jButton2 = new JButton("编程二");
private JButton jButton3 = new JButton("编程三");
private JButton jButton4 = new JButton("编程四");
private JButton jButton5 = new JButton("编程五");
private JPanel jPanel1 =new JPanel();
private JPanel jPanel2 =new JPanel();
private FlowLayout fl = new FlowLayout(CENTER);
private BoxLayout box = new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS);
public ExceptionEight() {
super();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口,就结束程序
setLayout(box);//容器布局为:方框垂直布局
//控件属性
jPanel1.setLayout(fl);
jPanel2.setLayout(fl);
textArea.setEditable(false);//文本框不可编辑
textArea.setLineWrap(true);//自动换行
textArea.setText(" 实验八\n (1)编程:创建有一个文本框和三个按钮的小程序。当按下每个按钮时,使不同的文字显示在文本框中。\n" +
" (2)编程:创建一用户登录界面,接受用户输入的帐号和密码,给三次输入机会。\n" +
" (3)编程:编写成人标准身高和体重互查的程序。身高和体生在两个不同的文本框中输入,要求输入一个。输入身高则输出体重,输入体重则输出身高。用一个按钮启动互查。互查的公式为: 体重=身高-100。\n" +
" (4)编程:创建三个JSlider滚动条和一个JLabel标签对象,滚动条用来调整红、绿、蓝三色的比例,每个滚动条加标题边界、设置刻度(自定)和标注。当拖动滑块修改三色比例时,变化标签的背景色。\n" +
" (5)编程:创建一个文本框、三个单选按钮、一个标签和一个按钮,文本框用来输入自然数N,根据选择单选按钮的不同,分别计算:1+2+…N或1*2*…N或1+1/2+1/3+…1/N,计算结果在标签中显示。");
//事件
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
/**编程一:
* 创建有一个文本框和三个按钮的小程序。
* 当按下每个按钮时,使不同的文字显示在文本框中。
*/
new OneQuestion();
}
});
jButton2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
/**编程二:
* 创建一用户登录界面,接受用户输入的帐号和密码,给三次输入机会。
*/
new TwoQuestion();
}
});
jButton3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
/**编程三:
* 编写成人标准身高和体重互查的程序。
* 身高和体生在两个不同的文本框中输入,要求输入一个。
* 输入身高则输出体重,输入体重则输出身高。
* 用一个按钮启动互查。互查的公式为: 体重=身高-100。
*/
new ThreeQuestion();
}
});
jButton4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
/**编程四
* 创建三个JSlider滚动条和一个JLabel标签对象,
* 滚动条用来调整红、绿、蓝三色的比例,每个滚动条加标题边界、设置刻度(自定)和标注。
* 当拖动滑块修改三色比例时,变化标签的背景色。
*/
new NewFourQuestion();
}
});
jButton5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
/**编程五
* 创建一个文本框、三个单选按钮、一个标签和一个按钮,
* 文本框用来输入自然数N,根据选择单选按钮的不同,
* 分别计算:1+2+…N或1*2*…N或1+1/2+1/3+…1/N,
* 计算结果在标签中显示。
*/
new NewFiveQuestion();
}
});
//布局
jPanel1.add(textArea);
jPanel2.add(jButton1);
jPanel2.add(jButton2);
jPanel2.add(jButton3);
jPanel2.add(jButton4);
jPanel2.add(jButton5);
add(jPanel1);
add(jPanel2);
pack();
setLocation(420, 220);
setVisible(true);
}
public static void main(String[] args) {
new ExceptionEight();
}
}
三、运行结果
扫描二维码关注公众号,回复:
4893800 查看本文章
送你一份Java基础课程PPT,老师讲的超好,网盘链接:https://pan.baidu.com/s/1FnWr404NxwyzqBPAog74Ng
(若链接失效可发邮件到[email protected])