首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

swing的2个有关问题有关问题,求指教

2013-02-17 
swing的2个问题问题,求指教!先别说话,请看代码:package TestLogin_claPimport java.awt.Colorimport jav

swing的2个问题问题,求指教!
先别说话,请看代码:

package TestLogin_claP;

import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Login_Cla {
privateint x;
privateint y;
privateint width;
privateint height;
JFrame jfLogin = null;
JPanel jpOneLayer = null;
JPanel jpTwoLayer = null;
JPanel jpTwo_OneLayer = null;
JPanel jpTwo_TwoLayer = null;

Login_Cla(){
initCoordinateDate();
setupJFrame();
setupJpOneLayer();
setupJpTwoLayer();
initJpTwo_OneLayer();
initJpTwo_TwoLayer();
}
privatevoidinitCoordinateDate(){
this.x = 0;
this.y = 0;
this.width = 500;
this.height = 500;
}

//----------- setup Component ------

private voidsetupJFrame(){
jfLogin= new JFrame("Welcome");
jfLogin.setVisible(true);
jfLogin.setSize(width, height);
jfLogin.setLayout(new GridLayout(2,1));
jfLogin.setResizable(false);
jfLogin.setLocationRelativeTo(null);
WindowClose_Cla winclose_obj = new WindowClose_Cla(); 
jfLogin.addWindowListener(winclose_obj);
//jfLogin.setUndecorated(true);//这一步用出问题来了,报了个异常,搞不懂啊!
}

privatevoidsetupJpOneLayer(){//it`s the first JPanel
jpOneLayer = new JPanel();
jfLogin.add(jpOneLayer);
}

privatevoidsetupJpTwoLayer(){//it`s the second JPanel
jpTwoLayer = new JPanel();
jfLogin.add(jpTwoLayer);

jpTwoLayer.setLayout(new GridLayout(1,2));
}

//----------- init JPanel ------

privatevoidinitJpTwo_OneLayer(){
jpTwo_OneLayer = new JPanel();
jpTwoLayer.add(jpTwo_OneLayer);

jpTwo_OneLayer.setBackground(Color.blue);
}
privatevoidinitJpTwo_TwoLayer(){
jpTwo_TwoLayer = new JPanel();
jpTwoLayer.add(jpTwo_TwoLayer);

jpTwo_TwoLayer.setBackground(Color.red);
}
//--------- complete JPanel -------

publicvoidcompleteJpOneLayer(){
//不显示!
JLabel jlWelcomeToFont = new JLabel("你好啊!");
jpOneLayer.add(jlWelcomeToFont);

//jlWelcomeToFont.setText("你好!");
jlWelcomeToFont.setVisible(true);
Font font=new Font("华文云彩",Font.PLAIN,50);
jlWelcomeToFont.setFont(font);
}
privatevoidcompleteJpTwo_OneLayer(){

}
privatevoidcompleteJpTwo_TwoLayer(){

}
}
/*
 * 此处的类,特点:都是公有的,可以大家都用的类
 */
class WindowClose_Cla extends WindowAdapter{
public void windowClosing(WindowEvent e){
e.getWindow().dispose() ;
//System.exit(0) ;//这个方法和上一个方法用起来效果一样
}
}


-----------------------  问 题  ----------------------
问题:
1、为什么我的代码不显示“你好”这几个字?我已经用了jpOneLayer.add(jlWelcomeToFont)啊?
   同时以防万一,我加了jlWelcomeToFont.setVisible(true);怎么就显示不出这几个字?
2、我在setupJFrame()函数里面写了句jfLogin.setUndecorated(true);目的是想隐藏我窗口的标题栏【也就是有叉叉、最小化等这样按钮的一栏】,但是不但没实现目的,还出现了异常?还使得窗口别的东西消失了,求教,为什么?

初学者求教!


[解决办法]
在代码里完全看不到方法completeJpOneLayer被调用,当然不会有显示
[解决办法]
晕死,你忘记调用completeJpOneLayer()方法了
这个方法最后加上这个方法

 private    void    setupJpTwoLayer(){//it`s the second JPanel
        jpTwoLayer = new JPanel()    ;
        jfLogin.add(jpTwoLayer)        ;
       
         
        jpTwoLayer.setLayout(new GridLayout(1,2))    ;
        completeJpOneLayer();
    }

还有我觉得你的命名有问题,虽然我一时没找到官方的命名规则,但是你的类,第一个字母一定是要大写的,这个你看看http://www.ibm.com/developerworks/library/ws-tip-namingconv.html
这里有个官方的conventionhttp://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html
[解决办法]

引用:
引用:在代码里完全看不到方法completeJpOneLayer被调用,当然不会有显示

明白了!!!

另外,我还想请教下,如下代码:
Java code?12345678        JLabel    jl_top    =    new    JLabel(){            @Override          ……


JLable label=new JLabel(){
@override
public void setText(String text){。。。}

}意思就是一个new 了一个继承自JLabel的类对象,此类重写了JLabel的setText()方法
[解决办法]
引用:
引用:引用:
引用:在代码里完全看不到方法completeJpOneLayer被调用,当然不会有显示

明白了!!!

另外,我还想请教下,如下代码:
Java code?12345678        JLabel    jl_top    =  ……


嗯,可以这样理解,后面new 出来的是JLabel子类对象,JLabel label引用此对象。
[解决办法]
引用:
引用:引用:
引用:引用:
引用:在代码里完全看不到方法completeJpOneLayer被调用,当然不会有显示

明白了!!!

另外,我还想请教下,如下代码:
……


在swing里面排版很麻烦,具体的我试试,有结果发上来,嘿嘿,实力不够就不上来说了
[解决办法]
引用:
引用:引用:
引用:引用:
引用:在代码里完全看不到方法completeJpOneLayer被调用,当然不会有显示

明白了!!!

另外,我还想请教下,如下代码:
……


你试试,给north,west,east,south每个模块分别放置点内容,试试;或者把每个模块的大小定义为固定值试试;或者定义为GridLayout,建议,不确定哦

热点排行
Bad Request.