java设计简单的swing(用java设计一个简单的界面设计,越简单越好,谢谢)

本文目录
- 用java设计一个简单的界面设计,越简单越好,谢谢
- 求助java的swing窗体怎么做如图布局效果
- 一个java程序 基于Swing的图形用户界面设计
- java swing表格实例制作,简单两行两列,在线等
- java设计一个求三角形面积的图形界面,要求通过3个输入框输入3个边长
- 用java编写一个登录界面,用SWING组件
- 用java 基于SWING的图形用户界面设计 编写一个应用程序
- 我想知道如何用java swing设计我想要的这样的一个界面望抽空帮助,万分感谢!
用java设计一个简单的界面设计,越简单越好,谢谢
用java设计一个简单的界面可以参考如下实例:
import javax.swing.JFrame;//框架
import javax.swing.JPanel;//面板
import javax.swing.JButton;//按钮
import javax.swing.JLabel;//标签
import javax.swing.JTextField;//文本框
import java.awt.Font;//字体
import java.awt.Color;//颜色
import javax.swing.JPasswordField;//密码框
import java.awt.event.ActionListener;//事件监听
import java.awt.event.ActionEvent;//事件处理
import javax.swing.JOptionPane;//消息窗口public class UserLogIn extends JFrame{
public JPanel pnluser;
public JLabel lbluserLogIn;
public JLabel lbluserName;
public JLabel lbluserPWD;
public JTextField txtName;
public JPasswordField pwdPwd;
public JButton btnSub;
public JButton btnReset;
public UserLogIn(){
pnluser = new JPanel();
lbluserLogIn = new JLabel();
lbluserName = new JLabel();
lbluserPWD = new JLabel();
txtName = new JTextField();
pwdPwd = new JPasswordField();
btnSub = new JButton();
btnReset = new JButton();
userInit();
}
public void userInit(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭框架的同时结束程序
this.setSize(300,200);//设置框架大小为长300,宽200
this.setResizable(false);//设置框架不可以改变大小
this.setTitle("用户登录");//设置框架标题
this.pnluser.setLayout(null);//设置面板布局管理
this.pnluser.setBackground(Color.cyan);//设置面板背景颜色
this.lbluserLogIn.setText("用户登录");//设置标签标题
this.lbluserLogIn.setFont(new Font("宋体",Font.BOLD | Font.ITALIC,14));//设置标签字体
this.lbluserLogIn.setForeground(Color.RED);//设置标签字体颜色
this.lbluserName.setText("用户名:");
this.lbluserPWD.setText("密 码:");
this.btnSub.setText("登录");
this.btnReset.setText("重置");
this.lbluserLogIn.setBounds(120,15,60,20);//设置标签x坐标120,y坐标15,长60,宽20
this.lbluserName.setBounds(50,55,60,20);
this.lbluserPWD.setBounds(50,85,60,25);
this.txtName.setBounds(110,55,120,20);
this.pwdPwd.setBounds(110,85,120,20);
this.btnSub.setBounds(85,120,60,20);
this.btnSub.addActionListener(new ActionListener()//匿名类实现ActionListener接口
{
public void actionPerformed(ActionEvent e){
btnsub_ActionEvent(e);
}
}
);
this.btnReset.setBounds(155,120,60,20);
this.btnReset.addActionListener(new ActionListener()//匿名类实现ActionListener接口
{
public void actionPerformed(ActionEvent e){
btnreset_ActionEvent(e);
}
}
);
this.pnluser.add(lbluserLogIn);//加载标签到面板
this.pnluser.add(lbluserName);
this.pnluser.add(lbluserPWD);
this.pnluser.add(txtName);
this.pnluser.add(pwdPwd);
this.pnluser.add(btnSub);
this.pnluser.add(btnReset);
this.add(pnluser);//加载面板到框架
this.setVisible(true);//设置框架可显
}
public void btnsub_ActionEvent(ActionEvent e){
String name = txtName.getText();
String pwd = String.valueOf(pwdPwd.getPassword());
if(name.equals("")){
JOptionPane.showMessageDialog(null,"账号不能为空","错误",JOptionPane.ERROR_MESSAGE);
return;
}else if (pwd.equals("")){
JOptionPane.showMessageDialog(null,"密码不能为空","错误",JOptionPane.ERROR_MESSAGE);
return;
}else if(true){
this.dispose();
}else{
JOptionPane.showMessageDialog(null,"账号或密码错误","错误",JOptionPane.ERROR_MESSAGE);
return;
}
}
public void btnreset_ActionEvent(ActionEvent e){
txtName.setText("");
pwdPwd.setText("");
}
public static void main(String args){
new UserLogIn();
}
}
求助java的swing窗体怎么做如图布局效果
运行效果
代码
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
public class TestWin extends JFrame implements ActionListener{
private JLabel numLabel=new JLabel("15");
private JButton startBtn=new JButton("Start");
private JButton stopBtn=new JButton("Stop");
private JButton speedUpBtn=new JButton("Speed Up");
private JButton slowDownBtn=new JButton("Slow Down");
{
startBtn.addActionListener(this);
stopBtn.addActionListener(this);
speedUpBtn.addActionListener(this);
slowDownBtn.addActionListener(this);
Container con=getContentPane();
con.setLayout(new BoxLayout(con, BoxLayout.Y_AXIS));
numLabel.setFont(new Font("",Font.BOLD,60));
Box numBox=Box.createHorizontalBox();
numBox.add(numLabel);
add(numBox);
Box btnBox=Box.createHorizontalBox();
btnBox.add(startBtn);
btnBox.add(stopBtn);
btnBox.add(speedUpBtn);
btnBox.add(slowDownBtn);
add(btnBox);
setTitle("Thread Test");
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
}
public static void main(String args) {
SwingUtilities.invokeLater(() -》 new TestWin());
}
}
一个java程序 基于Swing的图形用户界面设计
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Enumeration;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.plaf.FontUIResource;
public class NewFrame extends JFrame {
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private int a;
private int b;
private int total = 0;
private int result = 0;
private Random random = new Random();
public NewFrame() {
initComponents();
}
public int getA() {
a = random.nextInt(100);
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
b = random.nextInt(100);
return b;
}
public void setB(int b) {
this.b = b;
}
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
jTextField1 = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jTextField2 = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jTextField3 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("加法测试");
getContentPane().setLayout(new java.awt.GridBagLayout());
jTextField1.setColumns(8);
jTextField1.setText(getA() + "");
jTextField1.setEditable(false);
getContentPane().add(jTextField1, new java.awt.GridBagConstraints());
jLabel2.setText("加");
getContentPane().add(jLabel2, new java.awt.GridBagConstraints());
jTextField2.setColumns(8);
jTextField2.setEditable(false);
jTextField2.setText(getB() + "");
jTextField3.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if (KeyEvent.VK_ENTER == e.getKeyCode()) {
System.out.println("keyPressed");
action();
}
}
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
});
getContentPane().add(jTextField2, new java.awt.GridBagConstraints());
jLabel3.setText("等于");
getContentPane().add(jLabel3, new java.awt.GridBagConstraints());
jTextField3.setColumns(8);
getContentPane().add(jTextField3, new java.awt.GridBagConstraints());
jButton1.setText("确定");
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
action();
}
});
getContentPane().add(jButton1, new java.awt.GridBagConstraints());
jLabel1.setText("总分:0 ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
getContentPane().add(jLabel1, gridBagConstraints);
pack();
}
private void action() {
try {
if (total 》= 99) {
JOptionPane.showMessageDialog(null, "测试结束" + jLabel1.getText(),
"提示", 1);
jTextField3.setText("测试结束");
return;
}
int a = Integer.parseInt(jTextField1.getText());
int b = Integer.parseInt(jTextField2.getText());
int c = Integer.parseInt(jTextField3.getText().trim());
System.out.println(a + " " + b + " " + c);
if (a + b == c) {
result++;
JOptionPane.showMessageDialog(null, "正确", "正确提示", 1);
} else {
JOptionPane.showMessageDialog(null, "错误", "错误提示", 1);
}
total++;
jLabel1.setText("总分:" + result + " ");
jTextField1.setText(getA() + "");
jTextField2.setText(getB() + "");
jTextField3.setText("");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "输入提示", "请输入数字", 1);
}
}
public static void main(String args) {
Font font = new Font("宋体", Font.PLAIN, 12);
for (Enumeration keys = UIManager.getDefaults().keys(); keys
.hasMoreElements();) {
Object key = keys.nextElement();
Object value = UIManager.get(key);
if (value instanceof FontUIResource) {
UIManager.put(key, font);
}
}
NewFrame frame = new NewFrame();
frame.setLocationRelativeTo(null);
frame.setSize(400, 200);
frame.setVisible(true);
}
}
java swing表格实例制作,简单两行两列,在线等
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
public class test2
{
public test2(){
JFrame f=new JFrame();
Object playerInfo={
{"王鹏",new Integer(100),new Integer(80),new Boolean(true)},
{"李鹏",new Integer(20),new Integer(30),new Boolean(false)},
{"张鹏",new Integer(89),new Integer(60),new Boolean(true)}
};
String Names={"姓名","英语","数学","blue"};
JTable table=new JTable(playerInfo,Names);
table.setPreferredScrollableViewportSize(new Dimension(550,60));//设置此表视口的首选大小。
JScrollPane scrollPane=new JScrollPane(table);
f.setContentPane(scrollPane);
f.setTitle("支持蓝鹰");
f.pack();
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args){
new test2();
}
};
java设计一个求三角形面积的图形界面,要求通过3个输入框输入3个边长
下面是一个简单的 Java Swing 实现,包含三个文本框用于输入三角形的三条边:
```java
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class TriangleAreaCalculator extends JFrame {
private JLabel label1, label2, label3, resultLabel, errorLabel;
private JTextField tf1, tf2, tf3;
private JButton calculateButton;
public TriangleAreaCalculator() {
setTitle("Triangle Area Calculator"); // 设置窗口标题
setLayout(new GridLayout(5, 2)); // 设置网格布局
// 创建文本标签和文本框
label1 = new JLabel("Enter the length of side 1:");
tf1 = new JTextField(10);
label2 = new JLabel("Enter the length of side 2:");
tf2 = new JTextField(10);
label3 = new JLabel("Enter the length of side 3:");
tf3 = new JTextField(10);
// 创建计算按钮和结果标签
calculateButton = new JButton("Calculate");
resultLabel = new JLabel("");
errorLabel = new JLabel("");
// 添加组件到窗口
add(label1);
add(tf1);
add(label2);
add(tf2);
add(label3);
add(tf3);
add(calculateButton);
add(resultLabel);
add(errorLabel);
// 添加按钮监听器
calculateButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
double a = Double.parseDouble(tf1.getText());
double b = Double.parseDouble(tf2.getText());
double c = Double.parseDouble(tf3.getText());
if (a + b 《= c || a + c 《= b || b + c 《= a) {
throw new IllegalArgumentException("Invalid input! The sum of any two sides must be greater than the third side.");
}
double s = (a + b + c) / 2;
double area = Math.sqrt(s * (s - a) * (s - b) * (s - c));
resultLabel.setText(String.format("The area of the triangle is: %.2f", area)); // 显示计算结果,保留两位小数
errorLabel.setText(""); // 清除错误提示
} catch (NumberFormatException ex) {
resultLabel.setText("");
errorLabel.setText("Invalid input! Please enter a number.");
} catch (IllegalArgumentException ex) {
resultLabel.setText("");
errorLabel.setText(ex.getMessage());
}
}
});
pack(); // 使窗口大小自适应内容
setLocationRelativeTo(null); // 将窗口置于屏幕中央
setResizable(false); // 禁止调整窗口大小
setDefaultCloseOperation(EXIT_ON_CLOSE); // 设置窗口关闭行为
}
public static void main(String args) {
TriangleAreaCalculator calculator = new TriangleAreaCalculator();
calculator.setVisible(true);
}
}
```
通过绑定按钮的监听器,在输入三边长度后单击 “Calculate” 按钮,程序将计算三角形的面积,并在下方展示计算结果,当用户输入不合法数据时,也会在下方展示错误提示。
用java编写一个登录界面,用SWING组件
import java.awt.Color;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
/**
* 一个简单的Swing窗口,输入内容单击“确定”按钮后,在文本域中显示输入的内容。
* 单击“取消”按钮,清空页面内容。
* @author yzg
*
*/
public class Register extends JFrame {
private static final long serialVersionUID = 1L;
private JLabel nameLabel;
private JTextArea context;
private JTextField name;
private JLabel pLabel;
JList speciality;
JLabel mLabel;
String data = { "计算机", "英语", "机械", "化工" };
ButtonGroup bg;
JRadioButton male;
JRadioButton female;
JLabel fLabel;
JCheckBox faverite1;
JCheckBox faverite2;
JCheckBox faverite3;
JCheckBox faverite4;
public Register(String title) {
super(title);
this.getContentPane().setLayout(null);
// 下面两行是取得屏幕的高度和宽度
double lx = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
double ly = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
this.setLocation(new Point((int) (lx / 2) - 150, (int) (ly / 2) - 200));// 设定窗口出现位置
this.setSize(340, 440);// 设定窗口大小
}
public void showWin() {
// 确保窗体有一个好的外观装饰
// setDefaultLookAndFeelDecorated(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
// 姓名
nameLabel = new JLabel("姓名 :");
nameLabel.setBounds(30, 10, 50, 25);
name = new JTextField();
name.setBounds(80, 10, 120, 20);
name.setBorder(BorderFactory.createLineBorder(Color.BLUE));
name.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
if (name.getText().length() 》 6) {
name.setText(name.getText().substring(0, 6));
}
}
});
// 专业 组合框
pLabel = new JLabel("专业 :");
pLabel.setBounds(30, 40, 50, 25);
speciality = new JList(data);
speciality.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
speciality.setBounds(80, 40, 80, 85);
speciality.setBorder(BorderFactory.createLineBorder(Color.GREEN));
mLabel = new JLabel("性别 :");
mLabel.setBounds(30, 130, 50, 25);
// 性别 单选框
bg = new ButtonGroup();
male = new JRadioButton("男");
female = new JRadioButton("女");
bg.add(male);
bg.add(female);
male.setBounds(80, 130, 60, 25);
female.setBounds(140, 130, 60, 25);
fLabel = new JLabel("爱好 :");
fLabel.setBounds(30, 160, 50, 25);
// 爱好 复选框
faverite1 = new JCheckBox("音乐");
faverite2 = new JCheckBox("足球");
faverite3 = new JCheckBox("高尔夫");
faverite4 = new JCheckBox("游戏");
faverite1.setBounds(80, 160, 60, 25);
faverite2.setBounds(140, 160, 60, 25);
faverite3.setBounds(200, 160, 65, 25);
faverite4.setBounds(265, 160, 60, 25);
// 内容 文本区域
JLabel conLabel = new JLabel("输入的内容 :");
conLabel.setBounds(30, 250, 90, 25);
context = new JTextArea();
context.setBounds(30, 270, 260, 100);
context.setBorder(BorderFactory.createLineBorder(Color.black));
// 确定按钮
JButton ok = new JButton("确定");
ok.setBounds(50, 190, 60, 25);
ok.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
StringBuffer sb = new StringBuffer();
sb.append(nameLabel.getText()).append(name.getText());
sb.append("\n");
int index = speciality.getSelectedIndex();
if (index 》= 0) {
sb.append(pLabel.getText()).append(data);
} else {
sb.append(pLabel.getText());
}
sb.append("\n");
sb.append(mLabel.getText());
if (male.isSelected()) {
sb.append("男");
}
if (female.isSelected()) {
sb.append("女");
}
sb.append("\n");
sb.append(fLabel.getText());
if (faverite1.isSelected()) {
sb.append("音乐 ");
}
if (faverite2.isSelected()) {
sb.append("足球 ");
}
if (faverite3.isSelected()) {
sb.append("高尔夫 ");
}
if (faverite4.isSelected()) {
sb.append("游戏 ");
}
context.setText(sb.toString());
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
});
// 取消按钮
JButton cancel = new JButton("取消");
cancel.setBounds(120, 190, 60, 25);
cancel.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
name.setText("");
speciality.clearSelection();
if (faverite1.isSelected()) {
faverite1.setSelected(false);
}
if (faverite2.isSelected()) {
faverite2.setSelected(false);
}
if (faverite3.isSelected()) {
faverite3.setSelected(false);
}
if (faverite4.isSelected()) {
faverite4.setSelected(false);
}
context.setText("");
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
});
this.getContentPane().add(nameLabel);
this.getContentPane().add(name);
this.getContentPane().add(pLabel);
this.getContentPane().add(speciality);
this.getContentPane().add(mLabel);
this.getContentPane().add(male);
this.getContentPane().add(female);
this.getContentPane().add(fLabel);
this.getContentPane().add(faverite1);
this.getContentPane().add(faverite2);
this.getContentPane().add(faverite3);
this.getContentPane().add(faverite4);
this.getContentPane().add(conLabel);
this.getContentPane().add(context);
this.getContentPane().add(ok);
this.getContentPane().add(cancel);
// this.pack();
this.setVisible(true);
}
/**
* @param args
*/
public static void main(String args) {
Register reg = new Register("Register");
reg.showWin();
}
}
用java 基于SWING的图形用户界面设计 编写一个应用程序
package heh;//我自己的包名
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import javax.swing.*;
public class Jsq extends JFrame
{
Panel pan1=new Panel();
Panel pan2=new Panel();
Panel pan3=new Panel();
Panel pan4=new Panel();
Panel pan5=new Panel();
Label la1=new Label("欢迎使用计算器");
Button bt1=new Button(" ");
Button bt2=new Button("MC");
Button bt3=new Button("MR");
Button bt4=new Button("MS");
Button bt5=new Button("M+");
Button bt11=new Button("Backspace");
Button bt12=new Button("CE");
Button bt13=new Button("C");
Button but;
String buta={"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0","-/+",".","+","="};
JTextField t1=new JTextField("0");//swing组件,可以设置对齐方式
double a=0;//记录计算中的值或结果
String b="";//“+,-,*,/”运算符号标记
int d=0; //是否刚刚按过运算符号标记
int x=0; //是否刚刚按过“=”号标记
int y=0; //屏幕刚刚出现过汉字的标记
public Jsq()
{
super("计算器");
add(pan1,BorderLayout.NORTH);
add(pan4,BorderLayout.CENTER);
add(pan3,BorderLayout.WEST);
pan3.setLayout(new GridLayout(0,1,10,10));
pan3.add(bt1);pan3.add(bt2);pan3.add(bt3);pan3.add(bt4);pan3.add(bt5);
pan4.setLayout(new BorderLayout());
pan4.add(pan5,BorderLayout.NORTH);
pan4.add(pan2,BorderLayout.CENTER);
pan5.setLayout(new GridLayout(1,3,5,5));
pan5.add(bt11);pan5.add(bt12);pan5.add(bt13);
pan1.setLayout(new GridLayout(3,1));
pan1.add(la1);
pan1.add(t1);
t1.setEditable(false);//文本框设置为不可修改
t1.setHorizontalAlignment(JTextField.RIGHT);//设置文本框对齐方式
pan2.setLayout(new GridLayout(4,5,10,10));
for(int i=0;i《20;i++)
{
but);
pan2.add(but);
}
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
but.addActionListener(new A());
bt11.addActionListener(new A());
bt12.addActionListener(new A());
bt13.addActionListener(new A());
bt1.addActionListener(new A());
bt2.addActionListener(new A());
bt3.addActionListener(new A());
bt4.addActionListener(new A());
bt5.addActionListener(new A());
}
class A implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==but) //"7"
{
if(x==1) //判断是否刚刚按过"="
{
t1.setText("7");
x=0;
}
if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)
{ //如果显示为"0"或"0.0"或者刚刚按过运算符号
t1.setText("7"); //或者屏幕显示为汉字 那么显示为"7"
y=0;//将标记设置为0
}
else
t1.setText(t1.getText()+"7");//将显示的字符串后面加"7"
d=0;//将标记设置为0
if(t1.getText().length()》40)//判断显示字符长度是否超过40
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"8"
{
if(x==1)
{
t1.setText("8");
x=0;
}
if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)
{
t1.setText("8");
y=0;
}
else
t1.setText(t1.getText()+"8");
d=0;
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"9"
{
if(x==1)
{
t1.setText("9");
x=0;
}
if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)
{
t1.setText("9");
y=0;
}
else
t1.setText(t1.getText()+"9");
d=0;
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"/"
{
if(y==1) //判断显示的是否为汉字
{
t1.setText("0");
y=0;
}
if(d==0) //判断是否刚刚按过运算符号 防止连续按运算符号产生错误
{
if(b.equals("+"))//四则混合运算时 判断上次计算是否为"+"
{
a=a+Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(b.equals("-"))//四则混合运算时 判断上次计算是否为"-"
{
a=a-Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(b.equals("*"))//四则混合运算时 判断上次计算是否为"*"
{
a=a*Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(b.equals("/"))//四则混合运算时 判断上次计算是否为"/"
{
double f=Double.valueOf(t1.getText()).doubleValue();
if(f==0)//判断除数是否为0
{
t1.setText("错误!请按“CE”清屏后继续计算");
y=1;
}
else
{
a=a/Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
}
if(b.equals(""))//判断进行的是不是四则混合运算的第一次运算
{
a=Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
}
if(!t1.getText().equals("错误!请按“CE”清屏后继续计算"))//是否出现了除数为零的错误
{
b="/";//运算符号标记设置为"/"
d=1; //标记已经按过运算符号
}
if(t1.getText().length()》40)//判断显示字符长度是否超过40
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;//将记忆的数字抹去
b="";//运算符号标记 为未按过运算符号
d=0;//标记 刚刚没有按过运算符号
y=1;//标记 屏幕显示了汉字
}
}
if(e.getSource()==but) //"sqrt"
{
if(y==1)
{
t1.setText("0");
y=0;
}
double f=Double.valueOf(t1.getText()).doubleValue();
if(f《0) //判断被开放数是否小于零
{
t1.setText("错误!被开方数小于0,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
else
{
f=Math.sqrt(f);
t1.setText(""+(f));
}
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"4"
{
if(x==1)
{
t1.setText("4");
x=0;
}
if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)
{
t1.setText("4");
y=0;
}
else
t1.setText(t1.getText()+"4");
d=0;
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"5"
{
if(x==1)
{
t1.setText("5");
x=0;
}
if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)
{
t1.setText("5");
y=0;
}
else
t1.setText(t1.getText()+"5");
d=0;
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"6"
{
if(x==1)
{
t1.setText("6");
x=0;
}
if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)
{
t1.setText("6");
y=0;
}
else
t1.setText(t1.getText()+"6");
d=0;
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"*"
{
if(y==1)
{
t1.setText("0");
y=0;
}
if(d==0)
{
if(b.equals("+"))
{
a=a+Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(b.equals("-"))
{
a=a-Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(b.equals("*"))
{
a=a*Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(b.equals("/"))
{
double f=Double.valueOf(t1.getText()).doubleValue();
if(f==0)
{
t1.setText("错误!请按“CE”清屏后继续计算");
y=1;
}
else
{
a=a/Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
}
if(b.equals(""))
{
a=Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
}
if(!t1.getText().equals("错误!请按“CE”清屏后继续计算"))
{
b="*";
d=1;
}
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"%"
{
if(y==1)
{
t1.setText("0");
y=0;
}
double f=Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+(f/100));
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"1"
{
if(x==1)
{
t1.setText("1");
x=0;
}
if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)
{
t1.setText("1");
y=0;
}
else
t1.setText(t1.getText()+"1");
d=0;
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"2"
{
if(x==1)
{
t1.setText("2");
x=0;
}
if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)
{
t1.setText("2");
y=0;
}
else
t1.setText(t1.getText()+"2");
d=0;
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"3"
{
if(x==1)
{
t1.setText("3");
x=0;
}
if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)
{
t1.setText("3");
y=0;
}
else
t1.setText(t1.getText()+"3");
d=0;
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"-"
{
if(y==1)
{
t1.setText("0");
y=0;
}
if(d==0)
{
if(b.equals("+"))
{
a=a+Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(b.equals("-"))
{
a=a-Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(b.equals("*"))
{
a=a*Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(b.equals("/"))
{
double f=Double.valueOf(t1.getText()).doubleValue();
if(f==0)
{
t1.setText("错误!请按“CE”清屏后继续计算");
y=1;
}
else
{
a=a/Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
}
if(b.equals(""))
{
a=Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
}
if(!t1.getText().equals("错误!请按“CE”清屏后继续计算"))
{
b="-";
d=1;
}
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"1/x"
{
if(y==1)
{
t1.setText("0");
y=0;
}
else
{
double f=Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+(1/f));
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
}
if(e.getSource()==but) //"0"
{
if(x==1)
{
t1.setText("0");
x=0;
}
if(t1.getText().equals("0.0")||t1.getText().equals("0")||d==1||y==1)
{
t1.setText("0");
y=0;
}
else
t1.setText(t1.getText()+"0");
d=0;
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"-/+"
{
if(y==1)
{
t1.setText("0");
y=0;
}
double f=Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+(-f));
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"."
{
if(y==1)
{
t1.setText("0");
y=0;
}
if(t1.getText().indexOf(".")==-1)//判断是否已经有"."
{
t1.setText(t1.getText()+".");
}
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"+"
{
if(y==1)
{
t1.setText("0");
y=0;
}
if(d==0)
{
if(b.equals("+"))
{
a=a+Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(b.equals("-"))
{
a=a-Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(b.equals("*"))
{
a=a*Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(b.equals("/"))
{
double f=Double.valueOf(t1.getText()).doubleValue();
if(f==0)
{
t1.setText("错误!请按“CE”清屏后继续计算");
y=1;
}
else
{
a=a/Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
}
if(b.equals(""))
{
a=Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
}
if(!t1.getText().equals("错误!请按“CE”清屏后继续计算"))
{
b="+";
d=1;
}
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==but) //"="
{
if(y==1)
{
t1.setText("0");
y=0;
}
if(b.equals("+"))
{
a=a+Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(b.equals("-"))
{
a=a-Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(b.equals("*"))
{
a=a*Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(b.equals("/"))
{
double f=Double.valueOf(t1.getText()).doubleValue();
if(f==0)
{
t1.setText("错误!请按“CE”清屏后继续计算");
y=1;
}
else
{
a=a/Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
}
if(b.equals(""))
{
a=Double.valueOf(t1.getText()).doubleValue();
t1.setText(""+a);
}
if(!t1.getText().equals("错误!请按“CE”清屏后继续计算"))
{
b="";
d=1;
x=1;
}
if(t1.getText().length()》40)
{
t1.setText("错误!数字过长,请按“C”从新输入");
a=0.0;
b="";
d=0;
y=1;
}
}
if(e.getSource()==bt11) //"Backspace"
{
if(y==1)
{
t1.setText("0");
y=0;
}
else
{
String s1=t1.getText();
if(s1.length()==1)//如果将显示的数字全部退掉 则显示"0"
{
t1.setText("0");
}
else
{
t1.setText(s1.substring(0,(s1.length()-1)));//退格
}
}
}
if(e.getSource()==bt12) //"CE"
{
t1.setText("0");//清屏
}
if(e.getSource()==bt13) //"C" 初始化
{
t1.setText("0");
a=0.0;
b="";
d=0;
}
if(e.getSource()==bt1) //""
{
}
if(e.getSource()==bt2) //"MC"
{
}
if(e.getSource()==bt3) //"MR"
{
}
if(e.getSource()==bt4) //"MS"
{
}
if(e.getSource()==bt5) //"M+"
{
}
}
}
public static void main(String args)
{
Jsq a=new Jsq();
a.setSize(300,250);
a.setVisible(true);
}
}
我想知道如何用java swing设计我想要的这样的一个界面望抽空帮助,万分感谢!
效果图
思路:
JTabbedPane 提供了一个setUI方法,来修改JTabbedPane 的界面和外观
然后我们可以继承BasicTabbedPaneUI 重写里面的部分绘制方法来修改外观
参考代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicTabbedPaneUI;
public class SwingDemo extends JFrame implements ActionListener {
JButton jb;
JPanel jp3;
public SwingDemo() {
JTabbedPane jtpTotal = new JTabbedPane();//横向的JTabbedPane ,模块一,模块二...
JTabbedPane jtpa = new JTabbedPane();//模块一,对应的是jtpa
jtpa.setTabPlacement(JTabbedPane.LEFT);//设置标签在纵向
JPanel jp1 = new JPanel(new BorderLayout());//新建一个JPanel,布局为边界布局
JTextArea jta = new JTextArea();//文本域
jta.append("人生若只如初见,何事秋风悲画扇.");//文本域的内容
jta.setFont(new Font("宋体",Font.BOLD, 25));//文本域的文字
jp1.add(jta);
JPanel jp2 = new JPanel();
JLabel jl = new JLabel("PI=3.1415926");
jl.setFont(new Font("隶书",Font.BOLD, 20));
jl.setForeground(Color.RED);//设置jl的文字颜色
jp2.add(jl);
//为了方便响应事件,把jb,和jp3的定义放到了顶上
jp3 = new JPanel();
jb = new JButton("点击按钮修改本页的背景色");
jb.addActionListener(this);//添加事件响应
jp3.add(jb);
jtpa.add("选项一", jp1);
jtpa.add("选项二", jp2);
jtpa.add("选项三", jp3);
JPanel jpA = new JPanel(new BorderLayout());
jpA.add(jtpa);
//把jtpa的所有选项的标签的背景色设置为白色
for (int i = 0; i 《 jtpa.getTabCount(); i++) {
jtpa.setBackgroundAt(i, Color.WHITE);
}
jtpa.setUI(new TPUI());
jtpTotal.add("模块一", jpA);
//下面的jtpb和jtpc没有添加组件,也没有设置颜色, 但是结构看起来比较直观
JTabbedPane jtpb = new JTabbedPane();
jtpb.setTabPlacement(JTabbedPane.LEFT);
JPanel jp4 = new JPanel();
JPanel jp5 = new JPanel();
JPanel jp6 = new JPanel();
jtpb.add("选项四", jp4);
jtpb.add("选项五", jp5);
jtpb.add("选项六", jp6);
JPanel jpB = new JPanel(new BorderLayout());
jpB.add(jtpb);
jtpTotal.add("模块二", jpB);
JTabbedPane jtpc = new JTabbedPane();
jtpc.setTabPlacement(JTabbedPane.LEFT);
JPanel jp7 = new JPanel();
JPanel jp8 = new JPanel();
JPanel jp9 = new JPanel();
jtpc.add("选项七", jp7);
jtpc.add("选项八", jp8);
jtpc.add("选项九", jp9);
JPanel jpC = new JPanel(new BorderLayout());
jpC.add(jtpc);
jtpTotal.add("模块三", jpC);
add(jtpTotal);
setTitle("主窗口");// 标题
setSize(620, 480);// 大小
setLocationRelativeTo(null);// 居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 关闭窗口后退出程序
setVisible(true);// 窗口可见
}
public static void main(String args) {
new SwingDemo();
}
@Override
public void actionPerformed(ActionEvent e) {//点击修改jp3的颜色
if(e.getSource()==jb){//如果是jb按钮被点击
jp3.setBackground(new Color(getInt(),getInt(),getInt()));//那么修改jp3的背景色
}
}
public int getInt(){//随机产生0~255之间的数字,用于生成随机颜色r,g,b
return (int) (Math.random()*256);
}
}
//注意,此类用于修改外观JTabbedPane
class TPUI extends BasicTabbedPaneUI {
public static ComponentUI createUI(JComponent c) {
return new TPUI();
}
@Override
protected void paintTabBorder(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h,
boolean isSelected) {
if (isSelected) {//如果该标签被选中, 那么绘制矩形
g.setColor(new Color(116, 168, 231));
g.fillRect(x + w - 10, y, x+w, h);
}else{//没有被选中时的边框, 也可以不用绘制
g.setColor(new Color(116, 168, 231));
g.drawRect(x + w - 8, y, x+w, h);
}
}
@Override
protected void paintTabBackground(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h,
boolean isSelected) {
g.setColor(Color.RED);
super.paintTabBackground(g, tabPlacement, tabIndex, x, y, w, h, false);
// 最后一个参数 true绘制背景色.false不绘制
// 如果参数是isSelected ,那么选中就绘制背景色,不选中就不绘制
}
}

更多文章:
cocos creator中文(cocoscreator和cocoscreator3d的区别)
2026年9月22日 02:30
方舟生存进化新物种图鉴中英文对照图鉴 庞马资料图鉴 庞马(Equus magnus)?植物大战僵尸英文版图鉴
2026年9月22日 00:10
html document对象(载入浏览器的html文档都会成为document的对象吗)
2026年9月21日 16:00








