包含jpnjava的词条
本篇文章给大家谈谈jpnjava,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java 里面的Jpanel.setlayout(null)
- 2、一个java的swing的问题,布局管理器问题
- 3、java编程题~~
- 4、java怎样实现点击一个带图片按钮的,然后把按钮的图片显示在指定label上?没财富值了,谢谢
- 5、关于java window builder
- 6、GUI程序设计(java)
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的信息别忘了在本站进行查找喔。
发布于:2022-12-22,除非注明,否则均为
原创文章,转载请注明出处。