谁用过JBUILDER6? 请问JBUILDER中怎么调用WINDOWS API,等...... (200分)

  • 主题发起人 主题发起人 zyg_zm
  • 开始时间 开始时间
Z

zyg_zm

Unregistered / Unconfirmed
GUEST, unregistred user!
请教几个傻瓜级的问题:
1.Design页面的右键菜单有个Look and Feel,如果选Metal的话,会有那种很漂亮的界面,我发现很多用java做的程序都有这种界面风格,请问我在JBUILDER6中怎样实现。
2.代码编辑器(就是Source页面)中,请问,我能不能象DELPHI一样,光标移到行尾时再按"->"键还是继续往后走,而不是光标跳到下一行的行首?请问能不能这样,该怎样设置?就象有些开发工具有个“虚拟空格选项
3.请问JBUILDER编译出来的是什么文件,J2SDK的DEMO里都是jar文件,可我不知道JBUILDER编译出来是什么文件,能不能作成EXE”
4.请问JBUILDER中怎样调用API,比如我要调用MessageBox()该怎样做,另外java的消息提示的函数叫什么(类似alert,Showmessage,messagebox)
问题很菜,请大家不要见笑。
 
在jbuilder中的swing Containers面板里面就有类似messagebox的控件啊,你仔细看帮助,多尝试!
你索要的界面风格也在那里面。
 
to rockjie:你好,是哪一个控件能告诉我吗?另外我用了里面的控件,也没有那种界面效果呀,
其他问题谁知道吗?
 
好象您说的那个页面的控件都是一些容器类的控件
UP
 
你看帮助啊!!哎,给你段代码吧!
package internalframe;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.event.*;
//import javax.swing.JInternalFrame.*;
import java.beans.*;
import java.net.*;
import java.io.*;
import java.util.*;

public class InternalFrame extends JApplet
{
boolean isStandalone = false;
String filename;
JInternalFrame IF1;
JPanel jPanel2;
JSplitPane jSplitPane1;
BorderLayout borderLayout2;
JPanel jPanel1;
JPanel jPanel3;
JButton jButton1;
JPanel jPanel4;
BorderLayout borderLayout1;
JSplitPane jSplitPane2;
JScrollPane jScrollPane1;
JTextArea jTextArea1;
JList jList1;
JScrollPane jScrollPane2;
ImageIcon imageico,ico1;
/**Get a parameter value*/
public String getParameter(String key, String def)
{
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}
/**Construct the applet*/
public InternalFrame()
{
filename="1.htm";
}
/**Initialize the applet*/
public void init()
{
try
{
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
/**Component initialization*/
private void jbInit() throws Exception
{
String[] LD={"1","2","3"};
//ListData
IF1 = (JInternalFrame) Beans.instantiate(getClass().getClassLoader(), JInternalFrame.class.getName());
jPanel2 = (JPanel) Beans.instantiate(getClass().getClassLoader(), JPanel.class.getName());
jSplitPane1 = (JSplitPane) Beans.instantiate(getClass().getClassLoader(), JSplitPane.class.getName());
borderLayout2 = (BorderLayout) Beans.instantiate(getClass().getClassLoader(), BorderLayout.class.getName());
jPanel1 = (JPanel) Beans.instantiate(getClass().getClassLoader(), JPanel.class.getName());
jPanel3 = (JPanel) Beans.instantiate(getClass().getClassLoader(), JPanel.class.getName());
jButton1 = (JButton) Beans.instantiate(getClass().getClassLoader(), JButton.class.getName());
jPanel4 = (JPanel) Beans.instantiate(getClass().getClassLoader(), JPanel.class.getName());
borderLayout1 = (BorderLayout) Beans.instantiate(getClass().getClassLoader(), BorderLayout.class.getName());
jSplitPane2 = (JSplitPane) Beans.instantiate(getClass().getClassLoader(), JSplitPane.class.getName());
jScrollPane1 = (JScrollPane) Beans.instantiate(getClass().getClassLoader(), JScrollPane.class.getName());
jTextArea1 = (JTextArea) Beans.instantiate(getClass().getClassLoader(), JTextArea.class.getName());
jList1 = (JList) Beans.instantiate(getClass().getClassLoader(), JList.class.getName());
jScrollPane2 = (JScrollPane) Beans.instantiate(getClass().getClassLoader(), JScrollPane.class.getName());
Properties props = new Properties();
FileInputStream fos = new FileInputStream(filename);
props.load(fos);
System.out.println(props.getProperty("1.htm"));
//URL url=new URL(props.getProperty("1.htm"));
//props.remove("c:/111.txt");
//String r=doPost(url,props);
//System.out.println(r);
this.setSize(new Dimension(458, 353));
IF1.show();//一定要有,不然看不见InternalFrame
jPanel2.setLayout(borderLayout2);
jPanel1.setLayout(null);
jPanel3.setLayout(null);
jButton1.setText("jButton1");
jButton1.setBounds(new Rectangle(130, 92, 94, 45));
jButton1.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jButton1_actionPerformed(e);
}
});
IF1.setClosable(true);
IF1.setIconifiable(true);
IF1.setMaximizable(true);
IF1.setResizable(true);
IF1.setTitle("奇妙的窗口");
IF1.setBorder(BorderFactory.createLineBorder(Color.black));
jPanel4.setLayout(borderLayout1);
jSplitPane2.setOrientation(JSplitPane.VERTICAL_SPLIT);
jTextArea1.setToolTipText("");
jScrollPane2.setToolTipText("");
jScrollPane2.setBounds(new Rectangle(0, 0, 3, 3));
jList1.addListSelectionListener(new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent e)
{
jList1_valueChanged(e);
}
});
IF1.getContentPane().add(jPanel2, BorderLayout.CENTER);
jPanel2.add(jSplitPane2, BorderLayout.CENTER);
jSplitPane1.add(jPanel1, JSplitPane.LEFT);
jSplitPane1.add(jPanel3, JSplitPane.RIGHT);
jPanel1.add(jScrollPane2, null);
jPanel3.add(jButton1, null);
jSplitPane2.add(jSplitPane1, JSplitPane.LEFT);
jSplitPane2.add(jScrollPane1, JSplitPane.RIGHT);
jList1.setListData(LD);
this.getContentPane().add(jPanel4, BorderLayout.CENTER);
jSplitPane1.setOneTouchExpandable(true);
jSplitPane1.setContinuousLayout(true);
jSplitPane2.setOneTouchExpandable(true);
jSplitPane2.setContinuousLayout(true);
jPanel4.add(IF1);
jScrollPane2.setBounds(new Rectangle(78, 18, 156, 174));
jScrollPane2.getViewport().add(jList1,null);
imageico=new ImageIcon(internalframe.InternalFrame.class.getResource("t_al.gif"));
ico1=new ImageIcon(internalframe.InternalFrame.class.getResource("wave sound.jpg"));
jButton1.setIcon(imageico);
jScrollPane1.getViewport().add(jTextArea1,null);
IF1.setFrameIcon(ico1);
IF1.addVetoableChangeListener(new VetoableChangeListener()
{
public void vetoableChange(PropertyChangeEvent e) throws PropertyVetoException
{
if (e.getPropertyName()=="closed")
{
if (JOptionPane.showInternalConfirmDialog(IF1,"关闭吗?","激活的Frame的属性",1)==JOptionPane.OK_OPTION)
{
throw new PropertyVetoException("Cancel Closed!",e);
//取消用户的关闭操作
}
}
}
});
}
/**Get Applet information*/
/**Get parameter info*/
public String[][] getParameterInfo()
{
return null;
}
public JInternalFrame getIF1()
{
return IF1;
}
public JButton getjButton1()
{
return jButton1;
}
//static initializer for setting look &
feel
static
{
try
{
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
//UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
}
catch(Exception e){}
}
void jButton1_actionPerformed(ActionEvent e)
{
System.out.println("XXXXXX");
if (JOptionPane.showInternalConfirmDialog(IF1,"你出错了!...","error",1,1)==0)
{
System.exit(0);
}
}
public boolean isIsStandalone()
{
return isStandalone;
}
public static Stringdo
Post(URL url,Properties pro) throws IOException
{//静态方法不用void关键字,这里的String代表返回的类型
URLConnection urlconn=url.openConnection();
//得到一个URLConnection对象
urlconn.setDoInput(true);
//建立连接
PrintWriter out=new PrintWriter(urlconn.getOutputStream());
//获得一个输出流
Enumeration enum=pro.keys();
while (enum.hasMoreElements())
{
String name=(String)enum.nextElement();
//可能是htm传递的参数名及参数值
String value=pro.getProperty(name);
char ch;
if (enum.hasMoreElements()) ch='&' ;else
ch='/n';
out.println(name+"="+URLEncoder.encode(value)+ch);
}
out.close();
BufferedReader in;
try
{
in=new BufferedReader(new InputStreamReader(urlconn.getInputStream()));
}
catch (FileNotFoundException ex)
{
InputStream err=((HttpURLConnection)urlconn).getErrorStream();
if (err==null) throw ex;
in=new BufferedReader(new InputStreamReader(err));
}
StringBuffer response=new StringBuffer();
String line;
while ((line=in.readLine()) != null)
response.append(line+"/n");
in.close();
return response.toString();
//静态方法一定要这样的返回值
}
void jList1_valueChanged(ListSelectionEvent e)
{
if (jList1.getSelectedValue()!=null)
{
JOptionPane.showMessageDialog(this,jList1.getSelectedValue(),"您选择的项目值",1);
}
}
}
 
唉,说来惭愧,我装的是试用版,80M的那个,好象帮助不全,很多帮助都说找不到网页,请问谁有企业版的下载地址吗?
你这里帖那么多代码我也没时间看,先COPY下来再说,谢了。
大家帮我看看其他问题吧?很傻瓜的问题。
 
我有一些java的书
如要留下你的qq和mail
 
老人家,谢谢,我现在急需一些java基础的书,zyg_zm@sina.com,我下过几本java的书,jbuilder开发指南不是入门级的,还有一些教程老是中间有?号。
QQ,21416588,不过我上班时间不能上网,只有中午才可以
 
老人家,我收到了,谢谢,碰巧我今天中午刚下载到了这本书!不知道是不是同一个版本
 
编译后的文件是class文件,jar,war,ear等是class文件的打包文件。
 
to kehua:
jar是一定要在有JAVA环境下才能运行吧,能不能作成EXE在没有JAVA环境的系统上也能运行?
另外帮我看看上面其他几个问题吧
 
1.可以
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
2.可能不行
3.可以做成exe文件,Wizards-Native Executable Builder...
4.JOptionPane.showMessageDialog(this, "Eggs aren't supposed to be green.");
更复杂的可以用Jdialog
 
谢谢,我去试试看
 
to kehua:不好意思,请问API怎么调用?
 
//(怎样才能得到金属效果的界面呢)
to kehua:
还是不行
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
我把这句加在类Frame1()的代码里编译通不过,放在函数jbinit()里就可以编译通过,
但是效果还是没变,我看了j2sdk中的DEMO的NOTEPAD里也是这样写了一句,可我这里就是不行,奇怪?
请问是什么原因,还是放的位置不对?
 
劝你还是别白费劲了,这么一大堆花哨的东西,需要客户端通过IE下载10几M的支持库。
你以为用户都是吃饱了撑的?最好还是纯Java编程吧,用awt,打开IE就可以看。
调用Win API? 我不明白你用JBuilder干什么? 如果真要这么干,还是用Visual J++吧
 
to 一个过客:
不好意思,我只是好奇,我看到J2SDK中的DEMO都有这种界面,可我就是弄
不出来,其实这个界面我也不觉得好看,只是想知道怎么做出来的....
至于调用windows API,我也只是兴趣而已,想知道怎么做.....
希望大家不吝赐教
 
>to kehua:不好意思,请问API怎么调用?
import javax.swing.JOptionPane;
...
JOptionPane.showMessageDialog(this, "Eggs aren't supposed to be green.");
...
你不是要调用Windows API吧?
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel")一般放在Application的Main方法内。
 
to kehua,其实我主要想问的还是调用windows API,如何调Messagebox我只是举个例子
另外,谢谢kehua,LookFeel我放在Application类的Main方法里确实解决问题了
 
后退
顶部