谁能把一个JDialog的大小设置成(50,300),100分相送! 如题,尝试了很多方法,就是不行,郁闷~_~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public void setPreferredSize(Dimension preferredSize)public void setSize(Dimension d)public void setSize(int width,int height) 是的,setSize,setPreferredSize都用过,不行。不信各位可以试一下,如果成功了,请帖出源代码。 我刚开始做死活不行,我以为是我的方法错了,后来到网上把别人的代码拿过来试一下,还是不行,我用的JDK是1.5.08//********************我从网上搜到的代码******************************************package test.example2;import javax.swing.*;import javax.swing.event.*;import java.awt.event.*;import java.awt.BorderLayout;import java.awt.GridLayout;class HelpAbout extends JDialog implements ActionListener{ JFrame mainFrame; JButton okButton; javax.swing.Timer myTimer; int Counter=0; public HelpAbout(JFrame mainFrame) { super(mainFrame,"关于本程序的说明",true); //true 代表为有模式对话框 this.mainFrame= mainFrame; JPanel contentPanel=new JPanel(); contentPanel.setLayout(new BorderLayout()); JLabel imageLabel=new JLabel(new ImageIcon(".\\images\\javalogo.gif")); contentPanel.add(imageLabel,BorderLayout.WEST); JPanel authorInfoPane=new JPanel(); authorInfoPane.setLayout(new GridLayout(1,1)); JTextArea aboutContent=new JTextArea("本程序是作者在学习Java2 Swing编程的一个简单的程序,\n并不作为商业目的使用。\n作者的联系方式是:\n"); aboutContent.setEnabled(false); authorInfoPane.add(aboutContent); contentPanel.add(authorInfoPane,BorderLayout.NORTH); JPanel sysInfoPane=new JPanel(); sysInfoPane.setLayout(new GridLayout(5,1)); sysInfoPane.setBorder(BorderFactory.createLoweredBevelBorder()); contentPanel.add(sysInfoPane,BorderLayout.CENTER); JLabel userName=new JLabel("本机的用户名为:"+System.getProperty("user.name")); JLabel osName=new JLabel("本机的操作系统是:"+System.getProperty("os.name")); JLabel javaVersion=new JLabel("本机中所安装的Java SDK的版本号是:"+System.getProperty("java.version")); JLabel totalMemory=new JLabel("本机中Java虚拟机所可能使用的总内存数:"+Runtime.getRuntime().totalMemory()+"字节数" ); JLabel freeMemory=new JLabel("本机中Java虚拟机所剩余的内存数?"+Runtime.getRuntime().freeMemory()+"字节数" ); sysInfoPane.add(userName); sysInfoPane.add(osName); sysInfoPane.add(javaVersion); sysInfoPane.add(totalMemory); sysInfoPane.add(freeMemory); JPanel OKPane=new JPanel(); okButton=new JButton("确定(O)",new ImageIcon(".\\images\\ok.gif")); okButton.setMnemonic('O'); //设置快捷键为"Alt + O" /*以下代码是设置案钮的Rollover图象*/ Icon rollover = new ImageIcon(".\\images\\exit.gif"); Icon general = new ImageIcon(".\\images\\ok.gif"); Icon press = new ImageIcon(".\\images\\help.gif"); okButton.setRolloverEnabled(true); okButton.setIcon(general); //设置离开时的图象 okButton.setRolloverIcon(rollover); //设置在按纽上时的图象 okButton.setPressedIcon(press); //设置在按下按纽时的图象 this.getRootPane().setDefaultButton(okButton); //设置该按钮为该对话框的默认的按钮?. okButton.addActionListener(this); OKPane.add(okButton); contentPanel.add("South",OKPane); setContentPane(contentPanel); // this.setResizable(false); //设置对话框为不可改变大小 myTimer=new javax.swing.Timer(1000,this); myTimer.start(); } public void actionPerformed(ActionEvent parm1) { // TODO: Add your code here if(parm1.getSource()==okButton) { dispose(); } else if(parm1.getSource()==myTimer) { Counter++; this.setTitle("当前的定时器的值为:"+Counter+"秒"); } } public static void main(String [] args){ HelpAbout aboutDialog=new HelpAbout(null); aboutDialog.setSize(10,30);//设置大小,宽度没有为10,很是奇怪@_@ aboutDialog.setVisible(true); }} 我就是用的setSize阿,没有问题啊,我的运行一年多了,这是代码:import java.io.*;import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class NewClass extends JDialog{private JLabel lbl_classname=new JLabel("Class Name:",JLabel.RIGHT);private JTextField txt_classname=new JTextField(20);public String classname="";private JLabel lbl_classextends=new JLabel("extends:",JLabel.RIGHT);private JTextField txt_classextends=new JTextField(20);public String classextends="";private JLabel lbl_classimplements=new JLabel("implements:",JLabel.RIGHT);private JTextField txt_classimplements=new JTextField(20);public String classimplements=""; private JButton jok=new JButton("OK");private JButton jcancel=new JButton("CANCEL");private JPanel p1=new JPanel();private JPanel p2=new JPanel();public String finallystr="";public NewClass() { setTitle("new class..."); setSize(320,120); this.setModal(true); getContentPane().setLayout(new GridLayout(4,2)); getContentPane().add(lbl_classname); getContentPane().add(txt_classname); getContentPane().add(lbl_classextends); getContentPane().add(txt_classextends); getContentPane().add(lbl_classimplements); getContentPane().add(txt_classimplements); getContentPane().add(p1); getContentPane().add(p2); p1.setLayout(new BorderLayout()); p1.add(new JLabel(" "),"West"); p1.add(jok,"Center"); p1.add(new JLabel(" "),"East"); p2.setLayout(new BorderLayout()); p2.add(new JLabel(" "),"West"); p2.add(jcancel,"Center"); p2.add(new JLabel(" "),"East"); jok.setSize(30,20); jcancel.setSize(30,20); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); jok.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) { classname=txt_classname.getText(); classextends =txt_classextends.getText(); classimplements=txt_classimplements.getText(); if(txt_classname.getText().equals("") && txt_classextends.getText().equals("") && txt_classimplements.getText().equals("")) finallystr= "nocontent";else{ finallystr="public class "+txt_classname.getText(); if(!txt_classextends.getText().equals("")) finallystr +=" extends "+txt_classextends.getText(); if(!txt_classimplements.getText().equals("")) finallystr +=" implements "+txt_classimplements.getText(); finallystr +="\r\n{\r\npublic "+txt_classname.getText()+"()\r\n{\r\n}\r\n"; finallystr +="public static void main(String args[]){\r\n"+classname+" f=new "+classname+"();\r\nf.show();\r\n}\r\n"; if(txt_classimplements.getText().equals("Runnable")) finallystr +="public void run(){\r\n}"; else if(txt_classimplements.getText().equals("ActionListener")) finallystr +="public void actionPerformed(ActionEvent e){Object o=e.getSource();}"; finallystr +="}";} dispose(); } }); jcancel.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) { finallystr="nocontent"; dispose(); } }); super.show();}public String getClassname(){ return classname;}public String getClassextends(){ return classextends;} public String getClassimplements(){ return classimplements;} public String getAllCode(){ return finallystr;}} 你的代码在调用JDialog类时,最好直接new那个JDialog类,窗口大小应用那个JDialog类自己设置 To:zgysc(翠湖寒)谢谢老兄的指点,可是,你发现没有,你设置的宽度是(320,120),如果你把宽度设置成小于100,你就会发现这个问题了。JFrame也一样。 这个问题主要是由标题栏引发的,如果把JFrame设置成setUndercorated(true);则JFrame的大小可以设置成(50,300)没问题,否则,JFrame的宽度始终到不了50,有兴趣的话可以验证一下,呵呵~~ 现在有个问题就是,怎样替换掉JDialog的标准标题栏呢,而且替换之后,JDIalog还必须能够像原来一样被拖动?我觉得我比较烦人哈哈,各位别介意哈,菜鸟本来问题就多,哈哈~~ 一个小问题 课本上的一段代码,不知道什么错误·望大家指点 新手困惑:我是文科毕业的,想自学java,我能学好吗? swing的一个奇怪问题 急啊!希望大虾,进来卡看啊~~在线等啊 ~!关于STATIC 向数据库插入特别慢 char数组怎么转换String类 请问有没有网页上显示日历的方法,谢谢 各位高手说一下学习java的好网站吧 String里面本来就是字节数,怎么转换为byte 2个版本的同名jar包,可以指定执行某一个版本的方法吗? 能让一个JInternaFrame永远处于其他JInterFrame的上方吗?
public void setSize(Dimension d)
public void setSize(int width,int height)
//********************我从网上搜到的代码******************************************
package test.example2;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.awt.BorderLayout;
import java.awt.GridLayout;class HelpAbout extends JDialog implements ActionListener
{
JFrame mainFrame;
JButton okButton;
javax.swing.Timer myTimer;
int Counter=0;
public HelpAbout(JFrame mainFrame)
{
super(mainFrame,"关于本程序的说明",true); //true 代表为有模式对话框
this.mainFrame= mainFrame;
JPanel contentPanel=new JPanel();
contentPanel.setLayout(new BorderLayout());
JLabel imageLabel=new JLabel(new ImageIcon(".\\images\\javalogo.gif"));
contentPanel.add(imageLabel,BorderLayout.WEST); JPanel authorInfoPane=new JPanel();
authorInfoPane.setLayout(new GridLayout(1,1));
JTextArea aboutContent=new JTextArea("本程序是作者在学习Java2 Swing编程的一个简单的程序,\n并不作为商业目的使用。\n作者的联系方式是:\n");
aboutContent.setEnabled(false);
authorInfoPane.add(aboutContent);
contentPanel.add(authorInfoPane,BorderLayout.NORTH); JPanel sysInfoPane=new JPanel();
sysInfoPane.setLayout(new GridLayout(5,1));
sysInfoPane.setBorder(BorderFactory.createLoweredBevelBorder());
contentPanel.add(sysInfoPane,BorderLayout.CENTER);
JLabel userName=new JLabel("本机的用户名为:"+System.getProperty("user.name"));
JLabel osName=new JLabel("本机的操作系统是:"+System.getProperty("os.name"));
JLabel javaVersion=new JLabel("本机中所安装的Java SDK的版本号是:"+System.getProperty("java.version"));
JLabel totalMemory=new JLabel("本机中Java虚拟机所可能使用的总内存数:"+Runtime.getRuntime().totalMemory()+"字节数" );
JLabel freeMemory=new JLabel("本机中Java虚拟机所剩余的内存数?"+Runtime.getRuntime().freeMemory()+"字节数" ); sysInfoPane.add(userName);
sysInfoPane.add(osName);
sysInfoPane.add(javaVersion);
sysInfoPane.add(totalMemory);
sysInfoPane.add(freeMemory); JPanel OKPane=new JPanel();
okButton=new JButton("确定(O)",new ImageIcon(".\\images\\ok.gif"));
okButton.setMnemonic('O'); //设置快捷键为"Alt + O"
/*以下代码是设置案钮的Rollover图象*/
Icon rollover = new ImageIcon(".\\images\\exit.gif");
Icon general = new ImageIcon(".\\images\\ok.gif");
Icon press = new ImageIcon(".\\images\\help.gif"); okButton.setRolloverEnabled(true);
okButton.setIcon(general); //设置离开时的图象
okButton.setRolloverIcon(rollover); //设置在按纽上时的图象
okButton.setPressedIcon(press); //设置在按下按纽时的图象
this.getRootPane().setDefaultButton(okButton); //设置该按钮为该对话框的默认的按钮?. okButton.addActionListener(this);
OKPane.add(okButton);
contentPanel.add("South",OKPane); setContentPane(contentPanel);
// this.setResizable(false); //设置对话框为不可改变大小
myTimer=new javax.swing.Timer(1000,this);
myTimer.start();
} public void actionPerformed(ActionEvent parm1)
{
// TODO: Add your code here
if(parm1.getSource()==okButton)
{
dispose();
}
else if(parm1.getSource()==myTimer)
{
Counter++;
this.setTitle("当前的定时器的值为:"+Counter+"秒"); }
}
public static void main(String [] args){
HelpAbout aboutDialog=new HelpAbout(null);
aboutDialog.setSize(10,30);//设置大小,宽度没有为10,很是奇怪@_@
aboutDialog.setVisible(true);
}
}
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class NewClass extends JDialog{
private JLabel lbl_classname=new JLabel("Class Name:",JLabel.RIGHT);
private JTextField txt_classname=new JTextField(20);
public String classname="";private JLabel lbl_classextends=new JLabel("extends:",JLabel.RIGHT);
private JTextField txt_classextends=new JTextField(20);
public String classextends="";private JLabel lbl_classimplements=new JLabel("implements:",JLabel.RIGHT);
private JTextField txt_classimplements=new JTextField(20);
public String classimplements=""; private JButton jok=new JButton("OK");
private JButton jcancel=new JButton("CANCEL");
private JPanel p1=new JPanel();
private JPanel p2=new JPanel();
public String finallystr="";
public NewClass() {
setTitle("new class...");
setSize(320,120);
this.setModal(true);
getContentPane().setLayout(new GridLayout(4,2));
getContentPane().add(lbl_classname);
getContentPane().add(txt_classname);
getContentPane().add(lbl_classextends);
getContentPane().add(txt_classextends);
getContentPane().add(lbl_classimplements);
getContentPane().add(txt_classimplements);
getContentPane().add(p1);
getContentPane().add(p2);
p1.setLayout(new BorderLayout());
p1.add(new JLabel(" "),"West");
p1.add(jok,"Center");
p1.add(new JLabel(" "),"East");
p2.setLayout(new BorderLayout());
p2.add(new JLabel(" "),"West");
p2.add(jcancel,"Center");
p2.add(new JLabel(" "),"East");
jok.setSize(30,20);
jcancel.setSize(30,20);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
jok.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{
classname=txt_classname.getText();
classextends =txt_classextends.getText();
classimplements=txt_classimplements.getText();
if(txt_classname.getText().equals("") && txt_classextends.getText().equals("") && txt_classimplements.getText().equals(""))
finallystr= "nocontent";
else
{
finallystr="public class "+txt_classname.getText();
if(!txt_classextends.getText().equals(""))
finallystr +=" extends "+txt_classextends.getText();
if(!txt_classimplements.getText().equals(""))
finallystr +=" implements "+txt_classimplements.getText();
finallystr +="\r\n{\r\npublic "+txt_classname.getText()+"()\r\n{\r\n}\r\n";
finallystr +="public static void main(String args[]){\r\n"+classname+" f=new "+classname+"();\r\nf.show();\r\n}\r\n";
if(txt_classimplements.getText().equals("Runnable"))
finallystr +="public void run(){\r\n}";
else if(txt_classimplements.getText().equals("ActionListener"))
finallystr +="public void actionPerformed(ActionEvent e){Object o=e.getSource();}";
finallystr +="}";
}
dispose();
}
});
jcancel.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{
finallystr="nocontent";
dispose();
}
});
super.show();
}public String getClassname()
{
return classname;
}
public String getClassextends()
{
return classextends;
}
public String getClassimplements()
{
return classimplements;
}
public String getAllCode()
{ return finallystr;}
}
谢谢老兄的指点,可是,你发现没有,你设置的宽度是(320,120),如果你把宽度设置成小于100,你就会发现这个问题了。JFrame也一样。