java-关于Java的Swing程序问题

问题描述

关于Java的Swing程序问题


运行这个Java程序的时候容器网格设置为3行3列,为什么运行的时候只有两列,而且第四个面板大小与其他三个不同?

解决方案

第一个问题,你的结果之所以不是3行3列, GridLayout(3,3)布局时,设定的列数只有在行数为0时才起作用;当行数不为0时,列数是由行数和添加的布局组件总数决定的。比如,你的程序里面,行数为3,布局组件总数为4,那么列数将被确定为2,所以,你会看到运行之后的布局。
第二个问题,你的p4有两行,所以就是这样的效果了。
修正代码如下(布局行数为0,p4为1行),可以看到你需要的效果:

 import java.awt.*;
import javax.swing.*;

public class JPanelTest extends JFrame{

    public JPanelTest() throws HeadlessException {
        Container c = getContentPane();
        c.setLayout(new GridLayout(0,3,10,10));
        JPanel p1 = new JPanel(new GridLayout(1,1,10,10));
        JPanel p2 = new JPanel(new GridLayout(1,2,10,10));
        JPanel p3 = new JPanel(new GridLayout(1,2,10,10));
        JPanel p4 = new JPanel(new GridLayout(1,1,10,10));

        p1.add(new JButton("1"));
        p2.add(new JButton("2"));
        p3.add(new JButton("3"));
        p4.add(new JButton("4"));

        c.add(p1);
        c.add(p2);
        c.add(p3);
        c.add(p4);

        setSize(400,500);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    }

    public static void main(String[] args) {
        new JPanelTest();
    }
}

解决方案二:

因为你p4是gridlayout(2,1,10,10),有两行

解决方案三:

java Swing程序在linux下的乱码问题
Java学习笔记之SWING -- 基本SWING程序(添油加醋)
关于JAVA SWING程序的发布

解决方案四:

按钮直接添加到容器中,jpanel都删掉就可以了

时间: 2024-10-01 15:45:35

java-关于Java的Swing程序问题的相关文章

cs导出-java swing 程序导出jar 相关问题

问题描述 java swing 程序导出jar 相关问题 各位大神,我一直都在做BS程序,最近弄一个CS程序,在Eclipse中运行没有任何问题,但是导出时出现了一些问题,如下: 1 将整个CS项目导出可执行的jar时,不能执行 2 导出的jar文件解压后发现里面中文名称的图片乱码了 谢谢!!! 解决方案 1,最好不要在程序中使用汉字做为目录或资源名 2,jar导出的时候需要设置选项,设置启动类(在META_INF/MAINFEST.MF中增加 MAIN-CLASS:aaa) 3,直接点击是不一

图片-java Swing程序如何打包成一个可执行程序

问题描述 java Swing程序如何打包成一个可执行程序 写了一个Java Swing小程序 如何打包成可执行程序呀?里面有图片和数据库 解决方案 http://blog.163.com/xu_hunter2000/blog/static/4916410220101183210530/ 解决方案二: eclipse不是有导出jar运行文件功能么 解决方案三: 如果不用别的工具的话,直接导出成可执行的jar包就行了. 不过现在有好的的小工具,能够把程序打成一个单独jar文件或是做成exe的等等功

Java版的QQ小程序

这是一个简单的java版的QQ小程序. 包括一个简单的服务器和一个简单的客户端. 运行时,先运行服务器,然后在运行客户端,就可以进行聊天了. 默认的配置是localhost,端口4545,更改ip就可以在两天电脑上进行聊天了. 目前不支持内网和外网之间的访问,也不支持多人聊天. 因为这只是一个简单的例子,感兴趣的同学可以通过改进,实现多人聊天和内外网之间的访问. 效果图: 下载地址:http://download.csdn.net/source/2958843 源代码: QQServer.jav

用java写的桌面应用程序,文字显示不正常!!求助

问题描述 用java写的桌面应用程序,文字显示不正常代码上传到了网盘:http://pan.baidu.com/s/1hqkVmuw 解决方案 解决方案二:sun公司早就放弃了桌面编程的市场了,你还学?学了也没人用的,放弃吧,学点Javaweb才是java的强项解决方案三:Swing作为兴趣来耍耍还行,你如果以后要找这方面工作的,建议脱坑解决方案四:java中的GUI编程已经过时了,不过在其版本的教材中还是有专门章节的,学的时候简单的了解一下就下,有更好的界面设计语言,可以做出非常漂亮的界面,而

Java简易登录注册小程序_java

登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象.本例中如果有注释不详细的地方,详见其它博客. 功能介绍:简单的登录注册系统,使用了数据库sqlserver.单例模式.正则表达式以及图形化开发等知识. 1.在登录界面,可以登录或者注册用户. 注册用户界面,按照正则表达式规定的格式要求来输入信息,若有误,则重新输入. 2.点击注册,首先连接SQLserver数据库,连接成功则会判断该用户名是否已经存在,若存在,则给出提示.反之则进行注册. 3.登录界面,点击登录按钮时,首先与数据库

Java与XML(二)用java编写xml的读写程序

xml|程序 Java与XML(二)用java编写xml的读写程序 这是读取xml文件的java程序,我调试好的.采用的是dom方式读取xml文件到Vector中.package src;import java.io.*;import java.util.Vector;import javax.xml.parsers.*;import org.w3c.dom.*;public class readxml { static Document document; private boolean va

java做了一个exe程序怎么通过监听返回运行程序的路径

问题描述 java做了一个exe程序怎么通过监听返回运行程序的路径 用java写了个程序,想实现开机启动的功能,方法是想写入注册表,但是我要怎么知道我打开的这个程序的路径,就是我要通过监听,然后程序打开开机启动功能怎么返回该程序的路径,明白我的意思吗,或者有其他方法也可以? 解决方案 可以通过两种方式解决: 1.String path = new File(".").getCanonicalPath(); 2.System.getProperty("user.dir"

堆栈 日志 反射-java能否动态的在程序中获得出错的值(入参)

问题描述 java能否动态的在程序中获得出错的值(入参) 现在想对项目中的日志进行改造.方便出问题时的解决效率.(出问题时每次都要对错误进行复现.尤其是流程很长的时候.花了大量的时间和精力). 举个简单的例子. public class 人 { private String 身高; private String 体重; private int 年龄; public String get身高() { return 身高; } public void set身高(String 身高) { this.

java画金字塔,但是程序无响应

问题描述 java画金字塔,但是程序无响应 import acm.program.*; import acm.graphics.*; public class jinzita extends GraphicsProgram{ public static final double BRICK_WIDTH=10; public static final double BRICK_HEIGHT=4; public static final double BRICK_IN_BASE=10; public