「javajmenu用法」java中jmenu

博主:adminadmin 2023-03-19 03:10:09 345

本篇文章给大家谈谈javajmenu用法,以及java中jmenu对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中,用布局器实现计算器界面 并实现加减乘除等功能,怎样编程

java写的,可行

package ex1;

import java.awt.BorderLayout;

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 java.text.DecimalFormat;

import javax.swing.BorderFactory;

import javax.swing.ButtonGroup;

import javax.swing.JButton;

import javax.swing.JCheckBoxMenuItem;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JPanel;

import javax.swing.JRadioButtonMenuItem;

import javax.swing.JTextField;

public class Calcutor extends JFrame {

private JTextField tf;

private JPanel panel1, panel2, panel3, panel4;

private JMenuBar myBar;

private JMenu menu1, menu2, menu3;

private JMenuItem editItem1, editItem2, help1, help2, help3;

private JRadioButtonMenuItem seeItem1, seeItem2;//单选框

private JCheckBoxMenuItem seeItem3;//复选框

private ButtonGroup bgb;

private String back;

private boolean IfResult = true, flag = false;

private String oper = "=";

private double result = 0;

private Num numActionListener;

private DecimalFormat df;

public Calcutor(){

super("科学计算器");//设置标题栏

df = new DecimalFormat("#.####");//保留四位小数

this.setLayout(new BorderLayout(10, 5));

panel1 = new JPanel(new GridLayout(1, 3, 10, 10));

panel2 = new JPanel(new GridLayout(5, 6, 5, 5));//5行6列

panel3 = new JPanel(new GridLayout(5, 1, 5, 5));

panel4 = new JPanel(new BorderLayout(5, 5));

/**

* 菜单栏

*/

myBar = new JMenuBar();

menu1 = new JMenu("编辑(E)");

menu2 = new JMenu("查看(V)");

menu3 = new JMenu("帮助(H)");

menu1.setFont(new Font("宋体", Font.PLAIN, 12));

menu2.setFont(new Font("宋体", Font.PLAIN, 12));

menu3.setFont(new Font("宋体", Font.PLAIN, 12));

/**

* 编辑栏

*/

editItem1 = new JMenuItem("复制(C) Ctrl+C");

editItem2 = new JMenuItem("粘贴(P) Ctrl+V");

editItem1.setFont(new Font("宋体",Font.PLAIN,12));

editItem2.setFont(new Font("宋体",Font.PLAIN,12));

/**

* 查看栏

*/

seeItem1 = new JRadioButtonMenuItem("科学型(T)");

seeItem2 = new JRadioButtonMenuItem("标准型(S)");

seeItem3 = new JCheckBoxMenuItem("数字分组(I)");

seeItem1.setFont(new Font("宋体",Font.PLAIN,12));

seeItem2.setFont(new Font("宋体",Font.PLAIN,12));

seeItem3.setFont(new Font("宋体",Font.PLAIN,12));

/**

* 帮助栏

*/

help1 = new JMenuItem("帮助主题(H)");

help2 = new JMenuItem("关于计算器(A)");

help1.setFont(new Font("宋体",Font.PLAIN,12));

help2.setFont(new Font("宋体",Font.PLAIN,12));

bgb = new ButtonGroup();//选项组

menu1.add(editItem1);

menu1.add(editItem2);

menu2.add(seeItem1);

menu2.add(seeItem2);

menu2.addSeparator();//添加一条分割线

menu2.add(seeItem3);

menu3.add(help1);

menu3.addSeparator();//添加一条分割线

menu3.add(help2);

myBar.add(menu1);

myBar.add(menu2);

myBar.add(menu3);

this.setJMenuBar(myBar);

numActionListener = new Num();//实现数字监听

/**

* 文本域,即为计算器的屏幕显示区域

*/

tf = new JTextField();

tf.setEditable(false);//文本区域不可编辑

tf.setBackground(Color.white);//文本区域的背景色

tf.setHorizontalAlignment(JTextField.RIGHT);//文字右对齐

tf.setText("0");

tf.setBorder(BorderFactory.createLoweredBevelBorder());

init();//对计算器进行初始化

}

/**

* 初始化操作

* 添加按钮

*/

private void init(){

addButton(panel1, "Backspace", new Clear(), Color.red);

addButton(panel1, "CE", new Clear(), Color.red);

addButton(panel1, "C", new Clear(), Color.red);

addButton(panel2, "1/x", new Signs(), Color.magenta);

addButton(panel2, "log", new Signs(), Color.magenta);

addButton(panel2, "7", numActionListener, Color.blue);

addButton(panel2, "8", numActionListener, Color.blue);

addButton(panel2, "9", numActionListener, Color.blue);

addButton(panel2, "÷", new Signs(), Color.red);

addButton(panel2, "n!", new Signs(), Color.magenta);

addButton(panel2, "sqrt", new Signs(), Color.magenta);

addButton(panel2, "4", numActionListener, Color.blue);

addButton(panel2, "5", numActionListener, Color.blue);

addButton(panel2, "6", numActionListener, Color.blue);

addButton(panel2, "×", new Signs(), Color.red);

addButton(panel2, "sin", new Signs(), Color.magenta);

addButton(panel2, "x^2", new Signs(), Color.magenta);

addButton(panel2, "1", numActionListener, Color.blue);

addButton(panel2, "2", numActionListener, Color.blue);

addButton(panel2, "3", numActionListener, Color.blue);

addButton(panel2, "-", new Signs(), Color.red);

addButton(panel2, "cos", new Signs(), Color.magenta);

addButton(panel2, "x^3", new Signs(), Color.magenta);

addButton(panel2, "0", numActionListener, Color.blue);

addButton(panel2, "-/+", new Clear(), Color.blue);

addButton(panel2, ".", new Dot(), Color.blue);

addButton(panel2, "+", new Signs(), Color.red);

addButton(panel2, "tan", new Signs(), Color.magenta);

addButton(panel2, "%", new Signs(), Color.magenta);

addButton(panel2, "π", numActionListener, Color.orange);

addButton(panel2, "e", numActionListener, Color.orange);

addButton(panel2, "′″", new Signs(), Color.orange);

addButton(panel2, "=", new Signs(), Color.red);

JButton btns = new JButton("计算器");

btns.setBorder(BorderFactory.createLoweredBevelBorder());

btns.setEnabled(false);//按钮不可操作

btns.setPreferredSize(new Dimension(20, 20));

panel3.add(btns);//加入按钮

addButton(panel3, "MC", null, Color.red);

addButton(panel3, "MR", null, Color.red);

addButton(panel3, "MS", null, Color.red);

addButton(panel3, "M+", null, Color.red);

panel4.add(panel1, BorderLayout.NORTH);

panel4.add(panel2, BorderLayout.CENTER);

this.add(tf, BorderLayout.NORTH);

this.add(panel3, BorderLayout.WEST);

this.add(panel4);

pack();

this.setResizable(false);//窗口不可改变大小

this.setLocation(300, 200);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

/**

* 统一设置按钮的的使用方式

* @param panel

* @param name

* @param action

* @param color

*/

private void addButton(JPanel panel, String name, ActionListener action, Color color){

JButton bt = new JButton(name);

panel.add(bt);//在面板上增加按钮

bt.setForeground(color);//设置前景(字体)颜色

bt.addActionListener(action);//增加监听事件

}

/**

* 计算器的基础操作(+ - × ÷)

* @param x

*/

private void getResult (double x){

if(oper == "+"){result += x;}

else if(oper == "-"){result -= x;}

else if(oper == "×"){result *= x;}

else if(oper == "÷"){result /= x;}

else if(oper == "="){result = x;}

tf.setText(df.format(result));

}

/**

* 运算符号的事件监听

*/

class Signs implements ActionListener{

public void actionPerformed(ActionEvent e) {

/*

* 用ActionEvent对象的getActionCommand()方法

* 取得与引发事件对象相关的字符串

*/

String str = e.getActionCommand();

/* sqrt求平方根 */

if(str.equals("sqrt")){

double i = Double.parseDouble(tf.getText());

if(i=0){

/*

* String.valueOf() 转换为字符串

* df.format() 按要求保留四位小数

* Math.sqrt() 求算数平方根

*/

tf.setText(String.valueOf(df.format(Math.sqrt(i))));

}

else{

tf.setText("负数不能开平方根");

}

}

/* log求常用对数 */

else if(str.equals("log")){

double i = Double.parseDouble(tf.getText());

if(i0){

tf.setText(String.valueOf(df.format(Math.log(i))));

}else{

tf.setText("负数不能求对数");

}

}

/* %求百分比 */

else if(str.equals("%")){

tf.setText(df.format(Double.parseDouble(tf.getText()) / 100));

}

/* 1/x求倒数 */

else if(str.equals("1/x")){

if(Double.parseDouble(tf.getText()) == 0){

tf.setText("除数不能为零");

}else{

tf.setText(df.format(1 / Double.parseDouble(tf.getText())));

}

}

/* sin求正弦函数 */

else if(str.equals("sin")){

double i = Double.parseDouble(tf.getText());

tf.setText(String.valueOf(df.format(Math.sin(i))));

}

/* cos求余弦函数 */

else if(str.equals("cos")){

double i = Double.parseDouble(tf.getText());

tf.setText(String.valueOf(df.format(Math.cos(i))));

}

/* tan求正切函数 */

else if(str.equals("tan")){

double i = Double.parseDouble(tf.getText());

tf.setText(String.valueOf(df.format(Math.tan(i))));

}

/* n!求阶乘 */

else if(str.equals("n!")){

double i = Double.parseDouble(tf.getText());

if((i%2==0)||(i%2==1))//判断为整数放进行阶乘操作

{

int j = (int)i;//强制类型转换

int result=1;

for(int k=1;k=j;k++)

result *= k;

tf.setText(String.valueOf(result));

}

else

{

tf.setText("无法进行阶乘");

}

}

/* x^2求平方 */

else if(str.equals("x^2")){

double i = Double.parseDouble(tf.getText());

tf.setText(String.valueOf(df.format(i*i)));

}

/* x^3求立方 */

else if(str.equals("x^3")){

double i = Double.parseDouble(tf.getText());

tf.setText(String.valueOf(df.format(i*i*i)));

}

/* ′″角度转换 */

/**

* 将角度值转换成弧度值,方便三角函数的计算

*/

else if(str.equals("′″")){

double i = Double.parseDouble(tf.getText());

tf.setText(String.valueOf(i/180*Math.PI));

}

else{

if(flag){

IfResult = false;

}

if(IfResult){

oper = str;

}else{

getResult(Double.parseDouble(tf.getText()));

oper = str;

IfResult = true;

}

}

}

}

/**

* 清除按钮的事件监听

*/

class Clear implements ActionListener{

public void actionPerformed(ActionEvent e) {

/*

* 用ActionEvent对象的getActionCommand()方法

* 取得与引发事件对象相关的字符串

*/

String str = e.getActionCommand();

if(str == "C"){

tf.setText("0");

IfResult = true;

result = 0;

}else if(str == "-/+"){

double i = 0 - Double.parseDouble(tf.getText().trim());

tf.setText(df.format(i));

}else if(str == "Backspace"){

if(Double.parseDouble(tf.getText()) 0){

if(tf.getText().length() 1){

tf.setText(tf.getText().substring(0, tf.getText().length() - 1));

//使用退格删除最后一位字符

}else{

tf.setText("0");

IfResult = true;

}

}else{

if(tf.getText().length() 2){

tf.setText(tf.getText().substring(0, tf.getText().length() - 1));

}else{

tf.setText("0");

IfResult = true;

}

}

}else if(str == "CE"){

tf.setText("0");

IfResult = true;

}

}

}

/**

* 数字输入的事件监听

*/

class Num implements ActionListener{

public void actionPerformed(ActionEvent e) {

String str = e.getActionCommand();

if(IfResult){

tf.setText("");

IfResult = false;

}

if(str=="π")

{

tf.setText(String.valueOf(Math.PI));

}

else if(str=="e")

{

tf.setText(String.valueOf(Math.E));

}

else{

tf.setText(tf.getText().trim() + str);

if(tf.getText().equals("0")){

tf.setText("0");

IfResult = true;

flag = true;

}

}

}

}

/**

* 小数点的事件监听

*/

class Dot implements ActionListener{

public void actionPerformed(ActionEvent e) {

IfResult = false;

if(tf.getText().trim().indexOf(".") == -1){

tf.setText(tf.getText() + ".");

}

}

}

/**

* main方法

*/

public static void main(String[] args) {

new Calcutor().setVisible(true);

}

}

java弹出菜单JPopupMenu会使用的请进

在我本地是可以的,代码贴出来你在本地跑下:

package nc.ui.springsty.portal;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Dimension;

import javax.swing.JComponent;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuItem;

import javax.swing.JPanel;

import javax.swing.JPopupMenu;

public class PopUpMenuTest extends JFrame {

  private static final long serialVersionUID = -6359250625337227762L;

  public PopUpMenuTest() {

      super.setTitle("PopMenu Test!");

      super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      super.setSize(new Dimension(800, 600));

      JPanel panel = this.getJPanel();

      this.setPopUpMenu(panel);

      this.setLayout(new BorderLayout());

      this.add(panel, BorderLayout.CENTER);

  }

  public void setPopUpMenu(JComponent comp) {

      // JPopupMenu popUpMenu = new JPopupMenu();

      // JMenu item = new JMenu("Group");

      // JMenuItem subItem = new JMenuItem("sub");

      // item.add(subItem);

      // popUpMenu.add(item);

      // comp.setComponentPopupMenu(popUpMenu);

      JPopupMenu pop = new JPopupMenu();

      JMenu f = new JMenu("文件(F)");

      JMenuItem item = new JMenuItem("新建(N)");

      f.add(item);

      pop.add(f);

      comp.setComponentPopupMenu(pop);

  }

  public JPanel getJPanel() {

      JPanel panel = new JPanel();

      panel.setBackground(new Color(124, 81, 125));

      return panel;

  }

  public static void main(String[] args) {

      new PopUpMenuTest().setVisible(true);

  }

}

简单的java图片浏览器,使图片居中显示

有两种方法:

1. 将图片缩放,也就是显示缩略图

2. 使用JScrollPane,显示滚动条

第一种比较复杂,这里给出第二种方法的实现:

将你代码的第17、18行改成:

label = new JLabel();

JScrollPane scroll = new JScrollPane(label);

add(scroll);

关于java里image的用法

先要设置图片路径,我们将一将背景图片back.jpg放到C盘的img目录下,调用语句如下:

ImageIcon icon=new ImageIcon("C:\\img\\back.jpg),一定要是双反斜杠

然后分别在JComponent里添加图片

JFrame

利用JFrame的一个方法setIconImage(Image image);

由于要用到Image类,所以还得把上面定义的ImageIcon对象转换成Image对象:

Image image=icon.getImage();

然后就可以调用JFrame的setIconImage(image)方法了。

还要注意一点的是,由于有些图片的格式JVM不能识别,所以要转格式,一般为jpg,gif.如把.bmp格式的转换为.jpg,不能简单的把后缀名改了就行,这样照样不能显示。方法很简单,直接用WINDOWS自带的画图工具打开图片,然后另存为时改为.jpg或.gif格式就可以了。

附源代码

import java.awt.Image;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.tree.DefaultTreeCellRenderer;

import javax.swing.tree.DefaultMutableTreeNode;

import javax.swing.JTree;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import java.awt.FlowLayout;

public class ImageTest extends JFrame{

ImageIcon icon=new ImageIcon("c:\\img\\system.jpg");

Image image=icon.getImage();

public ImageTest()

{

JMenuBar mb=new JMenuBar();

this.setJMenuBar(mb);

JMenu menu=new JMenu("system");

menu.setIcon(icon);

//JMenuItem item=new JMenuItem("exit",icon);

JMenuItem item=new JMenuItem(icon);

item.setIcon(icon);

JLabel label=new JLabel(icon);

//label.setIcon(icon);

menu.add(item);

mb.add(menu);

DefaultMutableTreeNode root=new DefaultMutableTreeNode();

DefaultMutableTreeNode node1=new DefaultMutableTreeNode();

DefaultMutableTreeNode node11=new DefaultMutableTreeNode();

DefaultMutableTreeNode node12=new DefaultMutableTreeNode();

DefaultMutableTreeNode node2=new DefaultMutableTreeNode();

DefaultMutableTreeNode node21=new DefaultMutableTreeNode();

root.add(node1);

root.add(node2);

node1.add(node11);

node1.add(node12);

node2.add(node21);

JTree jTree1 = new javax.swing.JTree(root);

DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();

renderer.setOpenIcon(new ImageIcon("C:\\img\\down.jpg")); //展开时节点图标

renderer.setClosedIcon(new ImageIcon("C:\\img\\file.jpg")); //折叠时节点图标

renderer.setLeafIcon(new ImageIcon("C:\\img\\man_small.jpg")); //叶子节点图标

jTree1.setCellRenderer(renderer);

this.add(label);

this.setIconImage(image);

this.add(jTree1);

this.setDefaultCloseOperation(3);

this.setLocation(300,400);

this.pack();

this.setVisible(true);

}

public static void main(String[] args)

{

new ImageTest();

}

}

关于javajmenu用法和java中jmenu的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。