包含jpnjava的词条

博主:adminadmin 2022-12-22 20:57:08 59

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

本文目录一览:

java 里面的Jpanel.setlayout(null)

这个问题如果对BorderLayout的原理不理解是很难解释的

出现这个问题的主要原因是由于jpn的布局方式,假设一个容器的布局方式设置为null的话,如果没有显示的调用setPreferSize()方法,那么的首选大小为(0,0)。根据BorderLayout,North组件的高度受到其本身的PreferSize的Heigth控制,由于这里是0,所以布局计算出来jpn的高度为0,展示出来就看不到jpn,所以就看不见。

如果为center事情就完全不一样了,可以看出中间组件高度,整个高度-TOP的PreferSize-Bottom的Prefersize,宽度计算原理一样。本例中,BorderLayout的组件上下左右均无组件,所以中间组件的大小为整个容器的大小。所以是把jpn平铺在整个容器中,所以是可见的。

说了这么多,不知道你能否明白。还有什么不懂,可以参见BorderLayout的源代码中的layoutContainer方法。

一个java的swing的问题,布局管理器问题

JPanel jpn1=new JPanel(new BoxLayout(c,BoxLayout.X_AXIS));

这个错了。

就像错误提示的一样(BoxLayout can't be shared)这里不要声明BoxLayout

java编程题~~

(一题)

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class test {

public static void main(String[] args) {

ButtomFrame frame = new ButtomFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.show();

}

}

class ButtomFrame

extends JFrame

implements ActionListener {

JButton button;

public ButtomFrame() {

button = new JButton("0");

JPanel panel = new JPanel();

button.addActionListener(this);

panel.add(button);

setSize(300, 200);

Container contentpane = getContentPane();

contentpane.add(panel);

}

public void actionPerformed(ActionEvent event) {

String s = button.getText();

int a = Integer.parseInt(s) + 1;

button.setText(a + "");

}

}

(二题)

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class test {

public static void main(String[] args) {

ButtomFrame frame = new ButtomFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.show();

}

}

class ButtomFrame

extends JFrame

implements ActionListener {

JButton button1;

JButton button2;

JButton button3;

JButton button4;

JPanel panel1;

public ButtomFrame() {

button1 = new JButton("红");

button2 = new JButton("白");

button3 = new JButton("黑");

button4 = new JButton("蓝");

JPanel panel = new JPanel();

panel1 = new JPanel();

button1.addActionListener(this);

button2.addActionListener(this);

button3.addActionListener(this);

button4.addActionListener(this);

panel.setLayout(new BorderLayout());

panel.add(button1, BorderLayout.NORTH);

panel.add(button2, BorderLayout.SOUTH);

panel.add(button3, BorderLayout.EAST);

panel.add(button4, BorderLayout.WEST);

panel.add(panel1,BorderLayout.CENTER);

setSize(300, 200);

Container contentpane = getContentPane();

contentpane.add(panel);

}

public void actionPerformed(ActionEvent e) {

if(e.getSource() == button1){

panel1.setBackground(Color.RED);

}

if(e.getSource() == button2){

panel1.setBackground(Color.WHITE);

}

if(e.getSource() == button3){

panel1.setBackground(Color.BLACK);

}

if(e.getSource() == button4){

panel1.setBackground(Color.BLUE);

}

}

}

java怎样实现点击一个带图片按钮的,然后把按钮的图片显示在指定label上?没财富值了,谢谢

显示效果图

eclipse里的目录如下

完整的代码和详细的注释

import java.awt.BorderLayout;

import java.awt.event.*;

import javax.swing.*;

//该窗口继承与JFrame 实现了ActionListener接口

public class MyFrame extends JFrame implements ActionListener {

JButton jbShow, jbHide;//定义按钮

JTextField jtf;//定义文本框

JLabel jl;

public MyFrame() {

JPanel jpn = new JPanel();

jpn.add(new JLabel("头像"));

jl= new JLabel(getImgIcon("0"));//指定默认的头像为第0个

jpn.add(jl);

add(jpn,BorderLayout.NORTH);

JPanel jpc = new JPanel();

for (int i = 0; i 6; i++) { //准备的图片就6张

JButton jb = new JButton();

jb.setIcon(getImgIcon(i+""));

jb.addActionListener(this);

jb.setActionCommand(""+i);

jpc.add(jb);

}

add(jpc,BorderLayout.CENTER);

setTitle("程序");// 窗口标题

setSize(900, 320);// 窗口大小 宽900 高320

setLocationRelativeTo(null);// 窗口居中

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 当窗口关闭时,程序结束

}

public static void main(String[] args) {

new MyFrame().setVisible(true);

}

@Override

public void actionPerformed(ActionEvent e) {

//方法一:根据按钮顺序,获取图片,然后显示 ,也适合选择的图片是缩略图,显示的时候大图的情况,大图小图可以按照同一顺序排列...

// String cmd = e.getActionCommand();

// jl.setIcon(getImgIcon(cmd));

//方法二: 获取按钮上的图片,然后显示 .适合按钮图片和显示头像,都是同样大小的情况

JButton jb = (JButton) e.getSource();

jl.setIcon(jb.getIcon());

}

public ImageIcon getImgIcon(String index) {//根据图片顺序,获取图标

return new ImageIcon(this.getClass().getResource("/img/"+index+".jpg"));

}

}

关于java window builder

JTextArea是文本域, 可以调用setText(String str)方法来设置文本域的文字;

也可以使用append(String str)来追加文字;

当文字很多的时候, append方法就需要调用太多次,为了性能可以使用StringBuilder来拼接文字,然后调用setText方法来设置文字

参考代码

import java.awt.*;

import java.awt.event.*;

import java.util.Random;

import javax.swing.*;

public class SearchFrame extends JFrame implements ActionListener{

private JTextArea jta;

private JButton jbSearch, jbRest;

private JTextField jtf;

public SearchFrame() {

JPanel jpn = new JPanel();

JLabel jl = new JLabel("请输入姓名来查询");

jtf = new JTextField(8);

jbSearch = new JButton("查询");

jbSearch.addActionListener(this);

jpn.add(jl);

jpn.add(jtf);

jpn.add(jbSearch);

add(jpn, BorderLayout.NORTH);

jta = new JTextArea();//文本域

jta.setLineWrap(true);//自动换行

JScrollPane jsp = new JScrollPane(jta);//带有滚动条的面板

add(jsp);

JPanel jps = new JPanel();

jbRest = new JButton("清空");

jbRest.addActionListener(this);

jps.add(jbRest);

add(jps, BorderLayout.SOUTH);

setTitle("查询");

setSize(300, 300);

setLocationRelativeTo(null);

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

public static void main(String[] args) {

new SearchFrame().setVisible(true);

}

@Override

public void actionPerformed(ActionEvent e) {

JButton jb=(JButton) e.getSource();

if(jb==jbSearch){

String name = jtf.getText();

Random r=new Random();

//模拟数据库取出来的数据,然后调用append方法,添加到文本域, 注意是append,不是setText

//数据库取出来的结果是集合, 那么也可以使用循环把字符串拼接再一起,然后一次性setText贴上去

for (int i = 0; i  5; i++) {

jta.append("姓名:"+name+"\t班级:"+(i+1)+"\t分数"+(r.nextInt(40)+61)+"\r\n");

}

}else if(jb==jbRest){

jta.setText("");

jtf.setText("");

}

}

}

GUI程序设计(java)

=====================第一个类=============================

/**

*

* 实现了系统计算器连续按"="和按"+","-","*","/"进行累记运算的模式

*

* */

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class CalculatorFrame extends JFrame {

private JTextField txtDis = new JTextField("0", 16); //显示文本框

private JButton[] btnGrp = new JButton[17]; //17个按钮

private JPanel jpnMain = new JPanel(); //主面板

private JPanel jpnNorth = new JPanel(); //上面板

private JPanel jpnSouth = new JPanel(); //下面板

private double numSaved; //保存的前一个数

private String operator = ""; //保存的运算符号

private String lastPress = ""; //上一次按的按钮("数字","运算符" 或 "等号")

/*构造函数*/

public CalculatorFrame() {

//窗口设置

setTitle("计算器");

setSize(210, 250);

buttonInit(); //按钮初始化

//主面板设置

add(jpnMain);

jpnMain.setLayout(null);

jpnMain.add(jpnNorth);

jpnMain.add(jpnSouth);

jpnMain.add(btnGrp[15]);

btnGrp[15].setBounds(8, 180, 188, 30); //添加“=”按钮

//上面板设置

jpnNorth.setBounds(8, 10, 190, 30);

jpnNorth.add(txtDis);

txtDis.setHorizontalAlignment(JTextField.RIGHT); //设置文本右对齐

txtDis.setEditable(false);

//下面板设置

jpnSouth.setBounds(8, 60, 190, 120);

jpnSouth.setLayout(new GridLayout(4, 4));

addSouthJpn(); //添加17个按钮

//添加监听器

addListener();

}

/*17个按钮显示值初始化*/

public void buttonInit() {

for (int i = 0; i 10; i++) {

btnGrp[i] = new JButton("" + i);

}

btnGrp[10] = new JButton(".");

btnGrp[11] = new JButton("+");

btnGrp[12] = new JButton("-");

btnGrp[13] = new JButton("*");

btnGrp[14] = new JButton("/");

btnGrp[15] = new JButton("=");

btnGrp[16] = new JButton("C");

for (int i = 0; i 17; i++) {

btnGrp[i].setFont(new Font("Dialog", Font.PLAIN, 18));

}

}

/*按网格顺序添加除“=”外16个按钮*/

public void addSouthJpn() {

int[] index={7,8,9,14,4,5,6,13,1,2,3,12,0,16,10,11};

for(int i=0;iindex.length;i++){

jpnSouth.add(btnGrp[index[i]]);

}

}

/*给按钮添加监听器*/

public void addListener() {

//给数字按钮添加监听器,btnGrp[10]是"."号

for (int i = 0; i = 10; i++) {

btnGrp[i].addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

String button = ( (JButton) e.getSource()).getText();

//如果有运算操作符或文本框数字为0并且按钮不为“。”

if (lastPress == "运算符" || lastPress == "等号"

|| txtDis.getText().equals("0") button != ".") {

txtDis.setText(""); //清空文本框

}

if (lastPress == "等号") {

operator = ""; //上次按的是=号,这次按数字,清空运算符

}

if (button == "." txtDis.getText().indexOf(".") != -1) {

} //这次按的是.文本框内已经包含.这种情况什么都不做,防止.重复

else {

txtDis.setText(txtDis.getText() + button); //文本框添加内容

}

lastPress = "数字";

}

});

}

//给运算操作符按钮添加监听器

for (int i = 11; i = 14; i++) {

btnGrp[i].addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

if (operator != "" lastPress == "数字") { //运算符不为空并且之前按的是数字

(btnGrp[15].getActionListeners())[0].actionPerformed(e); //手动调用=号的监听响应实现=号功能

}

numSaved = Double.parseDouble(txtDis.getText()); //保存当前文本框的数字

operator = ( (JButton) e.getSource()).getText(); //保存运算操作符

lastPress = "运算符"; //添加运算符标记,下次文本框清空

}

});

}

//给等号按钮添加监听器

btnGrp[15].addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

double numNow = Double.parseDouble(txtDis.getText()); //当前文本框的数字

//运算符匹配操作

if (operator.equals("+")) {

txtDis.setText( (numSaved + numNow) + "");

}

else if (operator.equals("-")) {

if (lastPress == "等号") { //累记运算时的算法(一直按等号)

txtDis.setText( (numNow - numSaved) + "");

}

else {

txtDis.setText( (numSaved - numNow) + "");

}

}

else if (operator.equals("*")) {

txtDis.setText( (numSaved * numNow) + "");

}

else if (operator.equals("/")) {

if (lastPress == "等号") { //累记运算时的算法(一直按等号)

txtDis.setText( (numNow / numSaved) + "");

}

else {

txtDis.setText( (numSaved / numNow) + "");

}

}

if (lastPress != "等号") { //是第一次,以后按累记运算

numSaved = numNow; //保存数改为后一个数

}

lastPress = "等号"; //添加运算符标记,下次文本框清空

}

});

//给复位符“C”按钮添加监听器

btnGrp[16].addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

txtDis.setText("0");

numSaved = 0;

operator = "";

lastPress = "";

}

});

}

}

=====================第二个类=============================

import javax.swing.*;

public class Test {

public Test() {

CalculatorFrame calframe = new CalculatorFrame(); //新窗口

calframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置关闭

calframe.setLocationRelativeTo(null); //窗口置中

calframe.setVisible(true); //显示窗口

calframe.setDefaultLookAndFeelDecorated(false); //使用windows视感

calframe.setResizable(false); //窗口不可调大小

}

public static void main(String[] args) {

Test test = new Test();

}

}

jpnjava的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、jpnjava的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。