java按钮改变窗口大小_java – 当我们调整窗口大小时,Container中的元素如何调整?...
下面是窗口的代码,当用户单击按钮时,窗口会更改颜色,并在单击其他按钮时更改标签的文本.
它有两个按钮,一个用于按住按钮的面板,一个标签和一个用于图形的面板.
概念解释:
首先,我使用默认的BorderLayout将标签添加到框架的北部.然后我在一个单独的面板中添加了两个按钮,然后我将该面板添加到主框架的南部.然后我在主框架的中心添加了图形面板.
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class GuiAnimation extends JFrame
{
JButton colorBut;
JButton labelBut;
JLabel label;
PaintCanvas firstCanvas;
JPanel buttonPanel;
GuiAnimation()
{
colorBut = new JButton("Color Change");
labelBut = new JButton("Text Change");
label = new JLabel("I will change");
firstCanvas = new PaintCanvas();
buttonPanel = new JPanel();
addListener(); //May be i should make different method for different component for the flexibility.But here program is small.
addEverything();
}
private void addListener()
{
colorBut.addActionListener(new ColorListener());
labelBut.addActionListener(new LabelListener());
}
private void setButtonInPanel()
{
int pad = 80;
buttonPanel.setLayout(new FlowLayout(FlowLayout.LEADING, pad, 20));
buttonPanel.add(colorBut);
buttonPanel.add(labelBut);
}
void addEverything() //Here things are done with Layouts.
{
//add the label to the top of the window.
this.getContentPane().add(BorderLayout.NORTH, label);
//add button inside the panel.
setButtonInPanel();
//add that panel that has button to the frame.
this.getContentPane().add(BorderLayout.SOUTH, buttonPanel);
//add the graphics canvas to the frame.
this.getContentPane().add(BorderLayout.CENTER, firstCanvas);
}
class PaintCanvas extends JPanel
{
public void paintComponent(Graphics g)
{
int red = (int) (Math.random() * 255);
int green = (int) (Math.random() * 255);
int blue = (int) (Math.random() * 255);
Color randomColor = new Color(red, green, blue);
g.setColor(randomColor);
g.fillRect(0, 0, getWidth(), getHeight());
}
}
class ColorListener implements ActionListener
{
public void actionPerformed(ActionEvent e){
firstCanvas.repaint();
}
}
class LabelListener implements ActionListener
{
public void actionPerformed(ActionEvent e){
if ( label.getText().equals("I will change"))
label.setText("yes yes yes clicked");
else
label.setText("I will change");
}
}
public static void main(String[] args) {
GuiAnimation gui = new GuiAnimation();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setSize(500,600);
gui.setVisible(true);
}
}
这是上面代码的输出.太好了.
但是当我从右侧开始滑动时,会发生以下情况:
现在窗户的右墙朝左,但按钮是静止的.继续这个我们得到:
但是,如果我们从左侧调整大小,我们会得到:
这里的按钮似乎与框架一起向右移动(保持其与框架边界的距离).这与前一案例相反.但为什么?怎么样?
最后,我们有:
继续这一点,“ColorChange”按钮也变得部分不可见.
如果我们从右向左滑动而从左向右滑动,为什么会发生这两种不同的事情呢?
我已经搜索过,但我无法找到准确的答案,所以最后我在这里问:为什么和如何?
解决方法:
您已解释了该问题,但您尚未解释该要求.
panel.add( Box.createHorizontalGlue() );
panel.add( button1 );
panel.add( Box.createHorizontalStrut(20) );
panel.add( button2 );
panel.add( Box.createHorizontalGlue() );
这将创建一个面板,其中按钮保持居中,两个按钮之间的间隙为20像素.
标签:java,window,swing,frame,panel
来源: https://codeday.me/bug/20190528/1169617.html
java按钮改变窗口大小_java – 当我们调整窗口大小时,Container中的元素如何调整?...相关推荐
- java按钮改变窗口大小_布局似乎有问题,JButton在调整窗口大小时显示出意外的行为。...
很好的例子的问题可能与平台有关,但我可以提供一些观察:您没有添加或删除组件,所以您不需要revalidate(). 由于背景色是按钮的绑定属性,因此不需要后续调用repaint(). 你,你们做需要r ...
- java 改变窗口大小_java 如何让程序窗口随屏幕大小改变
这个问题一直困扰我很长时间了,虽然工作了一段时间,但感觉连这个问题都解决不好的话,实在对不起自己.今天我终于抽出时间,好好网上找了下资料,然后写了个简单的记事本程序,感觉是我想要的结果.所以在这里把程 ...
- Java迭代器修改链表_Java恼人的迭代器不会返回链表中的元素
给出以下代码: public void insertIntoQueue(float length,int xElement,int yElement,int whichElement) { Dot d ...
- LabVIEW学习笔记十三:窗格详解(调整窗格大小时缩放特定对象)
软件里对于窗格的说明和对于分割栏的说明是放在一起的,因为两者本来就联系紧密,窗格就是用分割栏构成的. 配置窗格 右键单击窗格中的滚动条并选择需配置的窗格,从下列快捷菜单项中选择以配置窗格. 显示项-为 ...
- java鼠标改变窗口大小监听事件_java – 当用户拖动鼠标时,监听JFrame调整事件大小?...
当用户单击JFrame的角落来调整大小并拖动鼠标时,JFrame会根据用户拖动时鼠标的当前位置重绘.你怎么听这些事件? 下面是我目前尝试的: public final class TestFrame ...
- mysql修改表编码为ytf8_如何修复“TypeError:x和y必须具有相同的数据类型,got”tf.uint8型!= tf.float32型“当我试图以十为单位调整图像大小时...
我试着建立一个图像管道,为Tensorflow构建一个图像数据集来裁剪图像,但是我无法裁剪图片. 我遵循了这个tutorial但是我想将文件裁剪成正方形,并且在不保留纵横比的情况下不调整其大小. 这是 ...
- java应用窗口大小_java 如何让程序窗口随屏幕大小改变 | 学步园
这个问题一直困扰我很长时间了,虽然工作了一段时间,但感觉连这个问题都解决不好的话,实在对不起自己.今天我终于抽出时间,好好网上找了下资料,然后写了个简单的记事本程序,感觉是我想要的结果.所以在这里把程 ...
- java 按钮不显示_JAVA图形界面,按钮为什么显示不出来?
JAVA图形界面,按钮为什么显示不出来? 来源:互联网 宽屏版 评论 2009-10-22 02:51:03 分类: 电脑/网络 >> 软件 问题描述: import javax.sw ...
- java 按钮设置图片_Java中如何设置带图片按钮的大小
在java部分需要用到图形界面编程的项目中,经常会使用图片设置对按钮进行美化,但是使用时会出现一个很麻烦的问题, 按照方法:JButton jb1 = new JButton(); jb1.setBo ...
最新文章
- 2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用
- ansible使用教程(4W字长文,保姆级别教程,建议收藏)
- 学编导还是学计算机,高二学编导烧钱吗
- laravel框架——composer导入laravel
- qt获取QString中第一个汉字
- 【转载】android客服端+eps8266+单片机+路由器之远程控制系统
- 容器编排技术 -- Kubernetes Replication Controller
- 以线虫为模型模拟的神经网络,让机器人无需训练即可自动避开障碍物
- 登录的时候 实现记住密码
- 各种芯片复位电路分析
- 让你的应用完美适配平板
- 一招解决A卡下载安卓模拟器问题
- uboot的常用环境变量(bootdelay、ipaddr、serverip、gatewayip、netmask、ethaddr、bootcmd、bootargs)
- ***虚拟专用网技术
- 【C语言】文件操作详解
- 准入控制_Kubernetes动态准入控制示例
- 企业微信自建应用通过PHP进行收发消息
- 概率论—贝叶斯定理 解析
- 材料专业就业方向有哪些,材料人就业工作?
- EasyPoi快速入门
热门文章
- Python调用Windows API函数编写录音机和音乐播放器
- ProjectEuler 5
- Django的get和post请求处理
- ExtJs2.0学习系列(10)--Ext.TabPanel之第二式
- pytorch实现LeNet5
- C++中序列化对象并存储到mysql
- TensorFlow第六步: 继续挖坑 用tf重写BP并增加SGD
- Matlab--存储和加载.mat文件形式的数据
- 21南阳理工oj新生赛Round#5--这是一道二分题
- 全国计算机一级msoffice考试内容,2015年全国计算机一级MSOffice考试大纲