java insets是什么?java中setBorder和setFocusable是什么意思
大家好,今天小编来为大家解答以下的问题,关于java insets是什么,java中setBorder和setFocusable是什么意思这个很多人还不知道,现在让我们一起来看看吧!
java jbutton 中setMargin什么意思
public void setMargin(Insets m)设置按钮边框和标签之间的空白。将该空白设置为 null会造成按钮使用默认空白。按钮的默认 Border对象将使用该值来创建适当的空白。不过,如果在按钮上设置非默认边框,则由 Border对象负责创建适当的空白(否则此属性将被忽略)。
参数:
m-边框和标签之间的间隔
这种问题,你可以通过API去查找。(常查询API很重要)
求简单java写计算器代码加减乘除
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener
{
private boolean dotExist, operated, equaled;//帮助运算的布尔变量
private double storedNumber;//目前的结果
private char lastOperator;//表示上一运算符
private JTextField operation;//结果栏
private JButton dot, plus, minus, multi, div, sqrt, equal, changePN, clear;//运算符
private JButton[] numbers;//数字
//构造者
public Calculator()
{
setTitle("Calculator");
//初始化变量
dotExist= false;//表示当前的数是否有小数点
operated= false;//表示任意运算符是否被按下
equaled= false;//表示等号是否被按下
storedNumber= 0;
lastOperator='?';
//初始化窗口变量
operation= new JTextField("0");
operation.setEditable(false);
numbers= new JButton[10];
for(int i= 0; i< 10; i++)
numbers[i]= new JButton(""+ i);
dot= new JButton(".");
plus= new JButton("+");
minus= new JButton("-");
multi= new JButton("*");
div= new JButton("/");
sqrt= new JButton("√");
equal= new JButton("=");
changePN= new JButton("±");
clear= new JButton("AC");
//将窗口物体放入窗口
GridBagLayout layout= new GridBagLayout();
getContentPane().setLayout(layout);
addComponent(layout, operation, 0, 0, 4, 1);
addComponent(layout, numbers[1], 1, 0, 1, 1);
addComponent(layout, numbers[2], 1, 1, 1, 1);
addComponent(layout, numbers[3], 1, 2, 1, 1);
addComponent(layout, numbers[4], 2, 0, 1, 1);
addComponent(layout, numbers[5], 2, 1, 1, 1);
addComponent(layout, numbers[6], 2, 2, 1, 1);
addComponent(layout, numbers[7], 3, 0, 1, 1);
addComponent(layout, numbers[8], 3, 1, 1, 1);
addComponent(layout, numbers[9], 3, 2, 1, 1);
addComponent(layout, dot, 4, 0, 1, 1);
addComponent(layout, numbers[0], 4, 1, 1, 1);
addComponent(layout, sqrt, 4, 2, 1, 1);
addComponent(layout, plus, 1, 3, 1, 1);
addComponent(layout, minus, 2, 3, 1, 1);
addComponent(layout, multi, 3, 3, 1, 1);
addComponent(layout, div, 4, 3, 1, 1);
addComponent(layout, equal, 5, 0, 2, 1);
addComponent(layout, changePN, 5, 2, 1, 1);
addComponent(layout, clear, 5, 3, 1, 1);
}
//对按钮进行反应的方法
public void actionPerformed(ActionEvent e)
{
JButton btn=(JButton)e.getSource();
if(btn== clear)
{
operation.setText("0");
dotExist= false;
storedNumber= 0;
lastOperator='?';
}
else if(btn== equal)
{
operate('=');
equaled= true;
}
else if(btn== plus)
{
operate('+');
equaled= false;
}
else if(btn== minus)
{
operate('-');
equaled= false;
}
else if(btn== multi)
{
operate('*');
equaled= false;
}
else if(btn== div)
{
operate('/');
equaled= false;
}
else if(btn== changePN)
{
operate('p');
operate('=');
equaled= true;
}
else if(btn== sqrt)
{
operate('s');
operate('=');
equaled= true;
}
else
{
if(equaled)
storedNumber= 0;
for(int i= 0; i< 10; i++)
if(btn== numbers[i])
{
if(operation.getText().equals("0"))
operation.setText(""+ i);
else if(! operated)
operation.setText(operation.getText()+ i);
else
{
operation.setText(""+ i);
operated= false;
}
}
if(btn== dot&&! dotExist)
{
operation.setText(operation.getText()+".");
dotExist= true;
}
}
}
//进行运算的方法
private void operate(char operator)
{
double currentNumber= Double.valueOf(operation.getText()).doubleValue();
if(lastOperator=='?')
storedNumber= currentNumber;
else if(lastOperator=='+')
storedNumber+= currentNumber;
else if(lastOperator=='-')
storedNumber-= currentNumber;
else if(lastOperator=='*')
storedNumber*= currentNumber;
else if(lastOperator=='/')
storedNumber/= currentNumber;
else if(lastOperator=='p')
storedNumber*=-1;
else if(lastOperator=='s')
storedNumber= Math.sqrt(currentNumber);
else if(lastOperator=='='&& equaled)
storedNumber= currentNumber;
operation.setText(""+ storedNumber);
operated= true;
lastOperator= operator;
}
//快捷使用GridBagLayout的方法
private void addComponent(GridBagLayout layout, Component component, int row, int col, int width, int height)
{
GridBagConstraints constraints= new GridBagConstraints();
constraints.fill= GridBagConstraints.BOTH;
constraints.insets= new Insets(10, 2, 10, 2);
constraints.weightx= 100;
constraints.weighty= 100;
constraints.gridx= col;
constraints.gridy= row;
constraints.gridwidth= width;
constraints.gridheight= height;
layout.setConstraints(component, constraints);
if(component instanceof JButton)
((JButton)component).addActionListener(this);
getContentPane().add(component);
}
//主方法初始化并显示窗口
public static void main(String[] args)
{
Calculator calc= new Calculator();
calc.setSize(290, 400);
calc.setVisible(true);
}
}
java中setBorder和setFocusable是什么意思
这两个方法是swing组件的方法,setBorder设置组件的边框,如大小、是否透明、其他特殊效果。setFocusable设置组件是否可被选中,如文本框不允许复制内容,则setFocusable(false),不能被选中,就不可以复制。
setBorder(Border border)设置组件的边框,Border对象负责定义组件的 insets(直接对组件重写所有 insets设置),并且可选地呈现这些 insets
范围内的边框装饰。要为 swing组件创建有装饰的和无装饰的区域(例如边距和填充),应该使用边框(而不是
insets)。在单个组件中可使用复合边框来嵌套多个边框。
setFocusable(boolean focusable)表明此 Component是否可以获得焦点。
如果你还想了解更多这方面的信息,记得收藏关注本站。