日常生活中,人们需要对某些常见图形和几何体做计算面积,体积,周长等相关计算。设计一个形状计算器,完成此功能。通过对菜单的选择,可以对不同的形状进行计算。

2023-10-26

日常生活中,人们需要对某些常见图形和几何体做计算面积,体积,周长等相关计算。设计一个形状计算器,完成此功能。通过对菜单的选择,可以对不同的形状进行计算。

1 作业中的接口与类
在这里插入图片描述
2 抽象类用于所有空间实现JPANE

package comprehensive;

import javax.swing.JPanel;
import javax.swing.JTextField;

public abstract class AbstractPanel extends JPanel {
	private static final long serialVersionUID = 1L;
	public abstract JTextField getInputTextField();
}

2 通用接口和抽象了

// 通用抽象类
package comprehensive;
public abstract class Shape {
public abstract double area();
}

//通用接口
package comprehensive;
public interface cal {
final double PI=3.14;
double perimeter();
}


3 圆形矩形三角形圆柱的JPANE及实现类
1)接口 及实现类

//圆形jpane
package comprehensive;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JLabel;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.text.DecimalFormat;

public class CirclePanel extends AbstractPanel {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JTextField txtradius;
	private JTextField txtpre;
	private JTextField txtarea;
	private JTextField input;  //用于获取当前获得焦点的文本框
	JButton btncal,btnclear;
	/**
	 * 创建圆形计算面板.
	 */
	public CirclePanel() {
	//	圆面板设为网格布局方式,屏蔽setSize方法设置的大小,使用setPreferredSize(new Dimension(200, 220))设置大小
		setLayout(new GridLayout(4, 1, 0, 0));
	//设置半径信息面板	
		JPanel panelradius = new JPanel();
		add(panelradius);
		JLabel lblradius = new JLabel("圆的半径是");
		panelradius.add(lblradius);
		txtradius = new JTextField();
		txtradius.addFocusListener(new Handle());
		panelradius.add(txtradius);
		txtradius.setColumns(10);
		//设置放置按钮的面板
		JPanel panelbutton = new JPanel();
		add(panelbutton);	
		btncal = new JButton("计算");
		panelbutton.add(btncal);
		btnclear = new JButton("清除");
		panelbutton.add(btnclear);	
		JPanel panelper = new JPanel();
		add(panelper);
		//设置显示周长信息的面板
		JLabel lblpre = new JLabel("圆的周长是");
		panelper.add(lblpre);	
		txtpre = new JTextField();
		panelper.add(txtpre);
		txtpre.setColumns(10);
		//设置显示面积信息的面板
		JPanel panelarea = new JPanel();
		add(panelarea);
		JLabel lblarea = new JLabel("圆的面积是");
		panelarea.add(lblarea);
		txtarea = new JTextField();
		panelarea.add(txtarea);
		txtarea.setColumns(10);
		//为“计算”按钮和“清除”按钮设置监听
		btnclear.addActionListener(new ActionListener() {
			//清除两个文本框中信息
			@Override
			public void actionPerformed(ActionEvent e) {
				txtarea.setText("");
				txtpre.setText("");
				txtradius.setText("");
			}
		});
		btncal.addActionListener(new ActionListener() {
			//计算并显示在文本框中
			@Override
			public void actionPerformed(ActionEvent e) {
				double r=Double.parseDouble(txtradius.getText());
				Circle cir=new Circle(r);
				double ar=cir.area();
				String formatAr=new DecimalFormat(".##").format(ar);
				double per=cir.perimeter();
				String formatPer=new DecimalFormat(".##").format(per);
				txtpre.setText(formatPer);
			    txtarea.setText(formatAr);
			}
		});
	}
class Handle extends FocusAdapter{
	public void focusGained(FocusEvent e) {
		input=(JTextField) e.getSource();   //设置输入文本框为当前获取焦点的文本框
	}
}
	public JTextField getInputTextField(){
			return input;   //该方法在keyPanel中调用,用于设置接收输入的文本框
	}
}

//圆形计算接类
package comprehensive;
public class Circle extends Shape implements cal{
	private double radius;
	
public Circle(double radius) {
		super();
		this.radius = radius;
	}
	public double perimeter() {
		return 2*Math.PI*radius;
	}
	public double area() {
		return radius*radius*PI;
	}
}

//Cyiner.java
package comprehensive;

public class Cyiner extends Shape implements cal {
	private double radius;
	private double height;
	public Cyiner(double radius,double height) {
		super();
		this.radius = radius;
		this.height = height;
	}
	public double perimeter() {
		return PI * radius * radius * height;
	}
	public double area() {
		double s1 = 2 * PI * radius * height;
		double s2 = PI * radius * radius;
		return s1 + s2;
	}
}

//CyPanel.java
package comprehensive;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class CyPanel extends AbstractPanel {
	private static final long serialVersionUID = 1L;
	JTextField input;
	private JTextField txt_radius;
	private JTextField txt_height;
	private JTextField txt_per;
	private JTextField txt_area;
	JButton button_calc,button_clear;
	public CyPanel() {
		setLayout(new GridLayout(5, 1));
		
		Handle handle = new Handle();
		
		JPanel p1 = new JPanel();
		JLabel l1 = new JLabel("圆柱体的半径是");
		txt_radius = new JTextField(8);
		txt_radius.addFocusListener(handle);
		p1.add(l1);
		p1.add(txt_radius);
		add(p1);
		
		JPanel p2 = new JPanel();
		JLabel l2 = new JLabel("  圆柱体的高是  ");
		txt_height = new JTextField(8);
		txt_height.addFocusListener(handle);
		p2.add(l2);
		p2.add(txt_height);
		add(p2);
		
		JPanel p3 = new JPanel();
		button_calc = new JButton("计算");
		button_calc.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				Cyiner cy = new Cyiner(Double.parseDouble(txt_radius.getText()), 
						Double.parseDouble(txt_height.getText()));
				txt_area.setText("" + cy.area());
				txt_per.setText("" + cy.perimeter());
			}
		});
		button_clear = new JButton("清除");
		button_clear.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent arg0) {
				txt_area.setText(null);
				txt_height.setText(null);
				txt_per.setText(null);
				txt_radius.setText(null);
			}
		});
		p3.add(button_calc);
		p3.add(button_clear);
		add(p3);
		
		JPanel p4 = new JPanel();
		JLabel l3 = new JLabel("圆柱体的体积是");
		txt_per = new JTextField(10);
		p4.add(l3);
		p4.add(txt_per);
		add(p4);
		
		JPanel p5 = new JPanel();
		JLabel l4 = new JLabel("圆柱体的面积是");
		txt_area = new JTextField(10);
		p5.add(l4);
		p5.add(txt_area);
		add(p5);
	}
	public JTextField getInputTextField() {
		return input;
	}
	class Handle extends FocusAdapter{
		public void focusGained(FocusEvent e) {
			input=(JTextField) e.getSource();   //设置输入文本框为当前获取焦点的文本框
		}
	}

}

//Triangle.java
package comprehensive;

public class Triangle extends Shape implements cal{
	private double a,b,c;
	public Triangle(double x,double y,double z) {
		super();
		a = x;
		b = y;
		c = z;
	}
	public double perimeter() {
		return a + b + c;
	}
	public double area() {
		double p = perimeter() / 2;
		double s = Math.sqrt(p * (p-a) * (p-b) * (p-c));
		return s;
	}
}

//TrianglePanel.java
package comprehensive;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class TrianglePanel extends AbstractPanel {
	private static final long serialVersionUID = 1L;
	private JTextField txt_a;
	private JTextField txt_b;
	private JTextField txt_c;
	private JTextField txtpre;
	private JTextField txtarea;
	private JTextField input;  //用于获取当前获得焦点的文本框
	JButton btncal,btnclear;
	
	public TrianglePanel() {
		setLayout(new GridLayout(6, 1));
		
		JPanel pan = new JPanel();
		JLabel l1 = new JLabel("第一条边长是");
		txt_a = new JTextField(8);
		pan.add(l1);
		pan.add(txt_a);
		add(pan);
		
		JPanel p2 = new JPanel();
		JLabel l2 = new JLabel("第二条边长是");
		txt_b = new JTextField(8);
		p2.add(l2);
		p2.add(txt_b);
		add(p2);
		
		JPanel p3 = new JPanel();
		JLabel l3 = new JLabel("第三条边长是");
		txt_c = new JTextField(8);
		p3.add(l3);
		p3.add(txt_c);
		add(p3);
		
		Handle handle = new Handle();
		Handles handles = new Handles();
		txt_a.addFocusListener(handle);
		txt_b.addFocusListener(handle);
		txt_c.addFocusListener(handle);
		
		
		JPanel p4 = new JPanel();
		btncal = new JButton("计算");
		btnclear = new JButton("清除");
		p4.add(btncal);
		p4.add(btnclear);
		add(p4);
		btncal.addActionListener(handles);
		btnclear.addActionListener(handles);
		
		JPanel p5 = new JPanel();
		JLabel l4 = new JLabel("三角形的周长是");
		txtpre = new JTextField(10);
		p5.add(l4);
		p5.add(txtpre);
		add(p5);
		
		JPanel p6 = new JPanel();
		JLabel l5 = new JLabel("三角形的面积是");
		txtarea = new JTextField(10);
		p6.add(l5);
		p6.add(txtarea);
		add(p6);
	}
	class Handle extends FocusAdapter{
		public void focusGained(FocusEvent e) {
			input=(JTextField) e.getSource();   //设置输入文本框为当前获取焦点的文本框
		}
	}
		public JTextField getInputTextField(){
				return input;   //该方法在keyPanel中调用,用于设置接收输入的文本框
		}
	class Handles implements ActionListener{

		public void actionPerformed(ActionEvent arg0) {
			if(arg0.getSource() == btncal) {
				Triangle t = new Triangle(Double.parseDouble(txt_a.getText()),
						Double.parseDouble(txt_b.getText()), Double.parseDouble(txt_c.getText()));
				txtarea.setText("" + t.area());
				txtpre.setText("" + t.perimeter());
			}
			if(arg0.getSource() == btnclear) {
				txt_a.setText(null);
				txt_b.setText(null);
				txt_c.setText(null);
				txtarea.setText(null);
				txtpre.setText(null);
			}
		}
		
	}
}

//Rect.java
package comprehensive;
public class Rect extends Shape implements cal{
	private double len;
	private double wedth;
	public Rect(double len,double wedth) {
		super();
		this.len = len;
		this.wedth = wedth;
	}
	public double perimeter() {
		return len + wedth;
	}
	public double area() {
		return len * wedth;
	}
}

//RectPanel.java
package comprehensive;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JLabel;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;

public class RectPanel extends AbstractPanel {
	private static final long serialVersionUID = 1L;
	private JTextField txtlength,txtwidth;
	private JTextField txtpre;
	private JTextField txtarea;
	private JTextField input;  //用于获取当前获得焦点的文本框
	JButton btncal,btnclear;
	/**
	 * 创建圆形计算面板.
	 */
	public RectPanel() {
	//	圆面板设为网格布局方式,屏蔽setSize方法设置的大小,使用setPreferredSize(new Dimension(200, 220))设置大小
		setLayout(new GridLayout(5, 1, 0, 0));
	//设置长度信息面板	
		JPanel panellength = new JPanel();
		add(panellength);
		JLabel lbllength = new JLabel("矩形的长是");
		panellength.add(lbllength);
		txtlength = new JTextField();
		txtlength.addFocusListener(new Handle());
		panellength.add(txtlength);
		txtlength.setColumns(10);
		//设置宽度信息面板	
				JPanel panelwidth= new JPanel();
				add(panelwidth);
				JLabel lblwidth = new JLabel("矩形的宽是");
				panelwidth.add(lblwidth);
				txtwidth = new JTextField();
				panelwidth.add(txtwidth);
				txtwidth.addFocusListener(new Handle());
				txtwidth.setColumns(10);
		//设置放置按钮的面板
		JPanel panelbutton = new JPanel();
		add(panelbutton);
		btncal = new JButton("计算");
		panelbutton.add(btncal);
		btncal.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				double a = Double.parseDouble(txtlength.getText());
				double b = Double.parseDouble(txtwidth.getText());
				Rect rect = new Rect(a, b);
				txtpre.setText(""+rect.perimeter());
				txtarea.setText(""+rect.area());
			}
		});
		btnclear = new JButton("清除");
		panelbutton.add(btnclear);	
		btnclear.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				txtarea.setText(null);
				txtlength.setText(null);
				txtwidth.setText(null);
				txtpre.setText(null);
			}
		});
		JPanel panelper = new JPanel();
		add(panelper);
		//设置显示周长信息的面板
		JLabel lblpre = new JLabel("矩形的周长是");
		panelper.add(lblpre);	
		txtpre = new JTextField();
		panelper.add(txtpre);
		txtpre.setColumns(10);
		//设置显示面积信息的面板
		JPanel panelarea = new JPanel();
		add(panelarea);
		JLabel lblarea = new JLabel("矩形的面积是");
		panelarea.add(lblarea);
		txtarea = new JTextField();
		panelarea.add(txtarea);
		txtarea.setColumns(10);
	}
	class Handle extends FocusAdapter{
		public void focusGained(FocusEvent e) {
			input=(JTextField) e.getSource();   //设置输入文本框为当前获取焦点的文本框
		}
	}
		public JTextField getInputTextField(){
				return input;   //该方法在keyPanel中调用,用于设置接收输入的文本框
		}
	}


//输入键盘
package comprehensive;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.Border;

public class KeyPanel extends JPanel {

	private static final long serialVersionUID = 1L;
	/**
	 * 创建输入键盘面板
	 */
	JButton[] keyButton=new JButton[12];
	String[] num={"1","2","3","4","5","6","7","8","9","0",".","BackSpace"};
	AbstractPanel selectedPanel;  //表示当前选择的图形面板,键入数据要传递到当前选择的面板中
	JTextField inputTextField;
	
	public KeyPanel() {
		setPreferredSize(new Dimension(350, 230));
		setLayout(new GridLayout(4,3));
		Border lb=BorderFactory.createLineBorder(Color.gray, 2);
		setBorder(lb);
		Handle handle=new Handle();
		for(int i=0;i<12;i++){
			keyButton[i]=new JButton(num[i]);
		    keyButton[i].setFont(new Font("Arial",Font.BOLD,15));
			keyButton[i].setForeground(Color.BLACK);
			keyButton[i].addActionListener(handle);
			add(keyButton[i]);
		}
	}
class Handle implements ActionListener{
	@Override
	public void actionPerformed(ActionEvent e) {
		JButton button=(JButton)e.getSource();  //获取事件源,看是哪个按钮被按下
		inputTextField=selectedPanel.getInputTextField();   //从传递来的形状面板中获取当前得到焦点的文本框
		inputNumber(inputTextField, button);  //调用inputNumber方法,在该文本框中输入数据	
	}
}
public void setSelectedPanel(AbstractPanel selected){
	selectedPanel = selected;
}

public void  inputNumber(JTextField tf,JButton button){  //根据不同事件源在文本框中显示不同信息
	String oldString=tf.getText();  //获取文本框中已有信息
	if(oldString==null){
		tf.setText(" ");
	}
	String subStr=oldString.substring(0, oldString.length());  //根据不同事件源的不同情况,设置不同的值
	String newString=button.getText();   
	if(newString.equals("BackSpace")){
		tf.setText(subStr);
	}
	else if(newString.equals(".")){
		tf.setText(oldString+".");
	}
	else{
		tf.setText(oldString+newString);
	}
}

}

//主运行程序 采用网格布局管理方式
package comprehensive;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JRadioButtonMenuItem;

public class CalculatorWindow extends JFrame {

	private static final long serialVersionUID = 1L;
	private KeyPanel keypanel;
	private AbstractPanel cirPanel,rectPanel,trianPanel,cyPanel;
	private CardLayout card;
	//菜单选项需要进行事件处理
	JMenuItem menuExit;
	JRadioButtonMenuItem menuCircle, menuRect,menuTangle,menuCyinder;
	JPanel panelWest;  //根据选项显示面板
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					CalculatorWindow frame = new CalculatorWindow();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public CalculatorWindow() {
		setTitle("图形计算器");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 590, 306);
		Container con=getContentPane();
		//con.setLayout(new GridLayout(1,2));
		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);
		Handle handle=new Handle();
		//添加“文件”菜单、菜单项及为菜单项添加监听
		JMenu menuFile = new JMenu("文件");
		menuBar.add(menuFile);
		menuExit = new JMenuItem("退出");
		menuExit.addActionListener(handle);
		menuFile.add(menuExit);
		//添加“计算”菜单、菜单项及为菜单项添加监听
		JMenu menuCalcu = new JMenu("计算");
		menuBar.add(menuCalcu);
		ButtonGroup group = new ButtonGroup();
		menuCircle = new JRadioButtonMenuItem("圆形");
		menuCircle.addActionListener(handle);
		menuCalcu.add(menuCircle);
		
		menuRect = new JRadioButtonMenuItem("矩形");
		menuRect.addActionListener(handle);
		menuCalcu.add(menuRect);
		
		menuTangle = new JRadioButtonMenuItem("三角形");
		menuTangle.addActionListener(handle);
		menuCalcu.add(menuTangle);
		
		menuCyinder = new JRadioButtonMenuItem("圆柱体");
		menuCyinder.addActionListener(handle);
		menuCalcu.add(menuCyinder);
		
		group.add(menuCyinder);
		group.add(menuTangle);
		group.add(menuRect);
		group.add(menuCircle);
		
		//主窗口左方面板为卡片布局方式,按需求显示形状面板
		panelWest = new JPanel();
		panelWest.setPreferredSize(new Dimension(220, 0));
		panelWest.setSize(220, 280);
		card = new CardLayout();
		panelWest.setLayout(card);
		//添加卡片面板,并为其取卡片名
		cirPanel=new CirclePanel();
		rectPanel=new RectPanel();
		trianPanel = new TrianglePanel();
		cyPanel = new CyPanel();
		panelWest.add("0",cirPanel);
		panelWest.add("1",rectPanel);
		panelWest.add("2",trianPanel);
		panelWest.add("3",cyPanel);
		con.add(panelWest,BorderLayout.WEST);
		
		//主窗口右侧面板中显示keyPanel,用于输入数字
		JPanel panelEast = new JPanel();
		panelEast.setPreferredSize(new Dimension(360, 0));
		keypanel=new KeyPanel();
		keypanel.setSelectedPanel(cirPanel);  //设置启动时,显示的图形面板为cirPanel,通过参数传递给keypanel,用于接收输入
		panelEast.add(keypanel);
		con.add(panelEast,BorderLayout.EAST);	
	}
	
//ActionEvent事件处理,根据菜单选项,显示对应卡片
	class Handle implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e) {
			if(e.getSource() == menuExit){
                System.exit(0);
			}else if(e.getSource() == menuCircle){
				card.show(panelWest, "0");
				keypanel.setSelectedPanel(cirPanel);
			}else if(e.getSource() == menuRect){
				card.show(panelWest, "1");
				keypanel.setSelectedPanel(rectPanel);
			}else if(e.getSource() == menuTangle) {
				card.show(panelWest, "2");
				keypanel.setSelectedPanel(trianPanel);
			}else if(e.getSource() == menuCyinder) {
				card.show(panelWest, "3");
				keypanel.setSelectedPanel(cyPanel);
			}
		}
		
	}

}

运行结果

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

日常生活中,人们需要对某些常见图形和几何体做计算面积,体积,周长等相关计算。设计一个形状计算器,完成此功能。通过对菜单的选择,可以对不同的形状进行计算。 的相关文章

  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • 如何使用 Java 和 Selenium WebDriver 在 C 目录中创建文件夹并需要将屏幕截图保存在该目录中?

    目前正在与硒网络驱动程序和代码Java 我有一种情况 我需要在 C 目录中创建一个文件夹 并在该文件夹中创建我通过 selenium Web 驱动程序代码拍摄的屏幕截图 它需要存储在带有时间戳的文件夹中 如果我每天按计划运行脚本 所有屏幕截
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O

随机推荐

  • 微信小程序——文字水平垂直居中

    记录一下CSS设置文字水平垂直居中 目录 1 代码说明 1 1 Html 1 2 CSS 2 效果 1 代码说明 对于直接在标签里面的文字 使用flex布局控制其中的文字水平和垂直居中 1 1 Html
  • java 使用sftp从远程服务器上传下载删除文件

    目录 前言 一 所需依赖 二 工具类 三 测试 1 判断指定目录是否存在 2 创建一个文件夹 3 删除指定文件 4 把文件上传到服务器上 5 从服务器上下载文件 6 执行Linux命令 前言 有时候我们需要让从代码里远程连接服务器进行文件上
  • jquery:值的操作

    jquery中一些操作值的方法 attr 操作某一个自定义属性值 text 操作文本值 html 操作html val 操作值
  • Python编程之控制台报错:Using TensorFlow backend.

    报错信息如下 报错原因 错误产生是因为tensorflow已经有更新 旧的内容已经不适用 解决方案 更新tensorflow的版本 1 pip uninstall tensorflow 2 pip uninstall tensorflow
  • MongoDB 性能调优

    一 explain 执行计划 MongoDB 提供了一个 explain 命令让我们获知系统如何处理查询请求 利用 explain 命令 我们可以很好地观察系统如何使用索引来加快检索 同时可以针对性优化索引 gt db t5 ensureI
  • 渗透测试之Google搜索语法

    目录 intitle allintitle inurl allinurl intext allintext filetype site link index of info define 通配符 intitle 从网页标题中搜索指定的关键字
  • 2012.11.21

    昨天的程序是有问题的 应该是杆8分别带动两侧的杆1 杆2 杆7 杆9分别被动旋转 起因在于杆8 杆1 杆2随杆8被动旋转在左侧 杆7副本 铲斗副本均绕着杆8副本被动旋转
  • 【转】【系列】【硬创邦】跟hoowa学做智能路由

    原文首发雷锋网 但雷锋网居然没把这个系列文章聚合起来 网上一搜 东一篇西一篇的 看起来十足不方便 现在聚合在此 方便学习 感谢作者hoowa 硬创邦 跟hoowa学做智能路由 一 我们来动手吧 硬创邦 跟hoowa学做智能路由 二 从芯片开
  • 最新阿里P7技术体系:大厂Offer拿到手软啊!年薪超过80万!

    说起IT行业 大多数人脑海里反应出的第一个标签一定是 高薪 而说起程序员 大家更多想到的可能是 秃顶 木讷 格子衫 加班多 能赚钱 不花钱 没对象 甚至很多人还说 程序员在互联网行业里面是吃青春饭的 干到30岁就会被行业淘汰掉 去年开始的各
  • http://jingyan.baidu.com/article/db55b609aac41e4ba30a2f86.html

    http jingyan baidu com article db55b609aac41e4ba30a2f86 html
  • 如何使用Grafana+Loki+Promtail日志聚合系统针对Kubernetes集群中Pods应用日志采集搜索展示...

    关注 WeiyiGeek 公众号 设为 特别关注 每天带你玩转网络安全运维 应用开发 物联网IOT学习 原文地址 如何使用Grafana Loki Promtail日志聚合系统针对Kubernetes集群中Pods应用日志采集搜索展示 本章
  • 数学建模-二胎政策对中国人口的影响

    研一的数学建模课上的关于 二胎政策对中国人口的影响 研究中国人口 发现中国人口老龄化非常严重 如今假设不放开全面二胎 那么中国的未来真的非常令人堪忧 事实上 如今的单独二胎对人口的影响不是太多 每年添加100多万的人口 对于中国日益下降的人
  • 单边指数衰减信号的频谱

    单边指数衰减信号的频谱 定义 傅里叶变换 幅度 相位 MATLAB作图代码 结果 定义 傅里叶变换 幅度 相位 MATLAB作图代码 单边指数 衰减 信号频谱作图 clear clc 幅度谱 w 2 0 1 2 y 1 sqrt 1 w w
  • PHP Opcache 配置优化实战

    前言 起源 在很长的一段时间里 我们的web服务器在遇到大规模流量访问的时候 很容易就把 CPU 负载飙到了 100 导致响应速度过慢 用户体验卡顿 直到最近开启了Opcahe后 我们的QPS从200 300 提升了1000 响应速度也提高
  • InnoDB: Check that you do not already have another mysqld process 错误解决办法

    非正常关机之后 再次启动mysql 失败 错误信息如下 150721 15 45 27 mysqld safe Starting mysqld daemon with databases from opt mysql data 150721
  • 电脑中打开VMware虚拟机提示权限不足无法访问文件如何解决

    最近使用win10系统电脑安装VMwame14后 打开虚拟机时报错 提示 打不开 vdmk格式文件 是由于 权限不足 无法访问 解决办法 试了网上说的很多办法 最简单的处理方式是鼠标右键使用管理员权限打开虚拟机 注意以管理员身份运行 当前登
  • JVM--一文精通

    调整JVM堆内存 在确定JVM堆内存大小时 需要考虑以下因素 应用程序的内存需求 操作系统和其他应用程序所需的内存 JVM的运行参数和GC算法 根据通常的经验 可以将JVM最大堆内存设置为操作系统可用内存的约70 也就是说 在16GB的机器
  • vmware挂载windows磁盘

    1 环境 WIN11 VMware16 Ubuntu20 2 步骤 关闭虚拟机 点击VMware的菜单栏虚拟机 设置 选项 共享文件夹 添加按照提示添加路径 如下图 开启虚拟机 创建一个挂载目录 然后挂载 图中挂载磁盘的名称E G H等可在
  • c#连接SQLSERVER命名实例的方法

    在今天看到一个帖子 问怎么连接命名实例的SQLSERVER数据库 结果发现了有两个答案 一般连接SQLSERVER数据库需要知道那些条件呢 1 服务器IP 2 数据库实例名 特别是命名实例的数据库实例 使用默认实例的可以忽略 3 数据库名
  • 日常生活中,人们需要对某些常见图形和几何体做计算面积,体积,周长等相关计算。设计一个形状计算器,完成此功能。通过对菜单的选择,可以对不同的形状进行计算。

    日常生活中 人们需要对某些常见图形和几何体做计算面积 体积 周长等相关计算 设计一个形状计算器 完成此功能 通过对菜单的选择 可以对不同的形状进行计算 1 作业中的接口与类 2 抽象类用于所有空间实现JPANE package compre