package Textarea;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.JTextPane;
public class flag extends JFrame implements ActionListener{
private boolean landing=false; //标志登陆否
private JTextPane textarea=new JTextPane();
private JPanel panel1=new JPanel();
private JMenuBar bar=new JMenuBar(); //工具条
private JMenu fileMenu=new JMenu("File");
private JMenu editMenu=new JMenu("Edit");
private JMenu quitMenu=new JMenu("Quit");
private JMenu landMenu=new JMenu("Land");
private JMenuItem open=new JMenuItem("open");
private JMenuItem quit=new JMenuItem("quit");
private JMenuItem land=new JMenuItem("land");
private JDialog lander=new JDialog(); //新建登陆对话框
private JLabel lableName=new JLabel("name:");
private JLabel lablePwd=new JLabel("password:");
private JTextField txname=new JTextField(); //文本区域
private JPasswordField txpsd=new JPasswordField(); //密码区域
private JButton over=new JButton("ok");
public flag()
{
setTitle("文本编辑器");
add(textarea);
setJMenuBar(bar); //设置菜单
bar.add(fileMenu);
bar.add(quitMenu);
bar.add(editMenu);
bar.add(landMenu);
fileMenu.add(open);
quitMenu.add(quit);
landMenu.add(land);
//设置登陆框样式
panel1.setLayout(new GridLayout(2,1)); //登陆框
lander.setTitle("lander");
lander.setLocation(400,350);
lander.setSize(200,100);
panel1.add(lableName);
panel1.add(txname);
panel1.add(lablePwd);
panel1.add(txpsd);
lander.add("north",panel1);
lander.add("south",over);
setLocation(400,300); //设置主框位置
setSize(400,200);
setVisible(true);
open.addActionListener(this); //单击监听
quit.addActionListener(this);
land.addActionListener(this);
over.addActionListener(this);
} @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==open)
{
if(!landing)
{
JOptionPane.showMessageDialog(null,"NO landing","error",JOptionPane.ERROR_MESSAGE);
}
}
if(e.getSource()==quit)
{
if(!landing)
{
JOptionPane.showMessageDialog(null,"NO landing","error",JOptionPane.ERROR_MESSAGE);
}
}
if(e.getSource()==land)
{
lander.setVisible(true);
if(txname.getText().equals("001")&&txpsd.getText().equals("001"))
{
landing=true;
}
if(e.getSource()==over)
System.exit(0);
}
}
public static void main(String[] args)
{
new flag();
}
}刚把书上的布局看完,自己随意写的...帮忙解决下 谢谢了
1.登陆框的ok按钮的位置怎么设..我用嵌套布局 就是Border +Grid 就错了,纯粹用Grid(3,1)的话 可以 但OK 位置在左边
2.if(e.getSource()==over)
System.exit(0); 这个貌似获取不了,不知道为什么
3.对话框应该怎么做啊,我这貌似太麻烦了...JOPtionPane 那个 不怎么会,书上讲太少了,而且貌似只能验证一个值???..不懂
我就想把帐户 密码输入 传回去 landing=true...谢谢了,这是不到10次的脱离书本写JAVA 程序,可能有点乱,以前都是抄袭书上代码的,现在第2本课本快看完了,想自己找点例子慢慢学
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.JTextPane;
public class flag extends JFrame implements ActionListener{
private boolean landing=false; //标志登陆否
private JTextPane textarea=new JTextPane();
private JPanel panel1=new JPanel();
private JMenuBar bar=new JMenuBar(); //工具条
private JMenu fileMenu=new JMenu("File");
private JMenu editMenu=new JMenu("Edit");
private JMenu quitMenu=new JMenu("Quit");
private JMenu landMenu=new JMenu("Land");
private JMenuItem open=new JMenuItem("open");
private JMenuItem quit=new JMenuItem("quit");
private JMenuItem land=new JMenuItem("land");
private JDialog lander=new JDialog(); //新建登陆对话框
private JLabel lableName=new JLabel("name:");
private JLabel lablePwd=new JLabel("password:");
private JTextField txname=new JTextField(); //文本区域
private JPasswordField txpsd=new JPasswordField(); //密码区域
private JButton over=new JButton("ok");
public flag()
{
setTitle("文本编辑器");
add(textarea);
setJMenuBar(bar); //设置菜单
bar.add(fileMenu);
bar.add(quitMenu);
bar.add(editMenu);
bar.add(landMenu);
fileMenu.add(open);
quitMenu.add(quit);
landMenu.add(land);
//设置登陆框样式
panel1.setLayout(new GridLayout(2,1)); //登陆框
lander.setTitle("lander");
lander.setLocation(400,350);
lander.setSize(200,100);
panel1.add(lableName);
panel1.add(txname);
panel1.add(lablePwd);
panel1.add(txpsd);
lander.add("north",panel1);
lander.add("south",over);
setLocation(400,300); //设置主框位置
setSize(400,200);
setVisible(true);
open.addActionListener(this); //单击监听
quit.addActionListener(this);
land.addActionListener(this);
over.addActionListener(this);
} @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==open)
{
if(!landing)
{
JOptionPane.showMessageDialog(null,"NO landing","error",JOptionPane.ERROR_MESSAGE);
}
}
if(e.getSource()==quit)
{
if(!landing)
{
JOptionPane.showMessageDialog(null,"NO landing","error",JOptionPane.ERROR_MESSAGE);
}
}
if(e.getSource()==land)
{
lander.setVisible(true);
if(txname.getText().equals("001")&&txpsd.getText().equals("001"))
{
landing=true;
}
if(e.getSource()==over)
System.exit(0);
}
}
public static void main(String[] args)
{
new flag();
}
}刚把书上的布局看完,自己随意写的...帮忙解决下 谢谢了
1.登陆框的ok按钮的位置怎么设..我用嵌套布局 就是Border +Grid 就错了,纯粹用Grid(3,1)的话 可以 但OK 位置在左边
2.if(e.getSource()==over)
System.exit(0); 这个貌似获取不了,不知道为什么
3.对话框应该怎么做啊,我这貌似太麻烦了...JOPtionPane 那个 不怎么会,书上讲太少了,而且貌似只能验证一个值???..不懂
我就想把帐户 密码输入 传回去 landing=true...谢谢了,这是不到10次的脱离书本写JAVA 程序,可能有点乱,以前都是抄袭书上代码的,现在第2本课本快看完了,想自己找点例子慢慢学
解决方案 »
- 学习JAVA遇到的问题
- java的文件操作
- java 正则表达式只匹配一个等号不能匹配双等号
- 怎么获得字符串的最后一位字符
- jfreechart的高手们救救小弟吧!在线等~~~~~~~急
- 求一个比较完整的基于TCP/IP的网络收与发程序!越简单越好,多些各位了!
- java有没有类似sniffer的网络抓包工具?
- 什么时候应该try{}catch(){}
- 怎样将printStackTrace函数的结果保存到String中呢?(在线等,马上结贴)
- 在《java2核心技术》卷I中第102页的CardDeck是如何调用第103页的Card的toString方法的?
- 急需
- java list鼠标事件问题
setLayout(null);//可视化的时候,自己想怎么摆就这么摆(初学使用borland jbuilder 2006吧)
2.if(e.getSource()==over)
System.exit(0); 这个貌似获取不了,不知道为什么
e.getSource()的返回值是?
3.对话框应该怎么做啊,我这貌似太麻烦了...JOPtionPane 那个 不怎么会,书上讲太少了,而且貌似只能验证一个值???..不懂
我就想把帐户 密码输入 传回去 landing=true... 对话框:
import javax.swing.JOptionPane;
<以下内容摘自JDK>
showConfirmDialog 询问一个确认问题,如 yes/no/cancel。
showInputDialog 提示要求某些输入。
showMessageDialog 告知用户某事已发生。
showOptionDialog 上述三项的大统一 (Grand Unification)。 <示例>
showConfirmDialog(Component parentComponent, Object message)
调出带有选项 Yes、No 和 Cancel 的对话框;标题为 Select an Option。
showInputDialog(Component parentComponent, Object message)
.....以下依此类推,JDK都有原样的代码,如果问题中上述代码为LZ手写的话。那么看明白相关JDK应该不是难事
2.我想获取 点击 ok 后 跳出
3.JOPtionPane JDK我看了,但还是不明白...有个showInputDialog 但貌似只有一个空输入 我也不大清楚怎么检测
package Textarea;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.JTextPane;
public class flag extends JFrame implements ActionListener{
private boolean landing=false; //标志登陆否
private JTextPane textarea=new JTextPane();
private JPanel panel1=new JPanel();
private JMenuBar bar=new JMenuBar(); //工具条
private JMenu fileMenu=new JMenu("File");
private JMenu editMenu=new JMenu("Edit");
private JMenu quitMenu=new JMenu("Quit");
private JMenu landMenu=new JMenu("Land");
private JMenuItem open=new JMenuItem("open");
private JMenuItem quit=new JMenuItem("quit");
private JMenuItem land=new JMenuItem("land");
private JDialog lander=new JDialog(); //新建登陆对话框
private JLabel lableName=new JLabel("name:");
private JLabel lablePwd=new JLabel("password:");
private JTextField txname=new JTextField(); //文本区域
private JPasswordField txpsd=new JPasswordField(); //密码区域
private JButton over=new JButton("ok");
public flag()
{
setTitle("文本编辑器");
add(textarea);
setJMenuBar(bar); //设置菜单
bar.add(fileMenu);
bar.add(quitMenu);
bar.add(editMenu);
bar.add(landMenu);
fileMenu.add(open);
quitMenu.add(quit);
landMenu.add(land);
//设置登陆框样式
lander.setLayout(new GridLayout(3,1)); //登陆框
lander.setTitle("lander");
lander.setLocation(400,350);
lander.setSize(200,100);
lander.add(lableName);
lander.add(txname);
lander.add(lablePwd);
lander.add(txpsd);
//lander.add("north",panel1);
lander.add(over);
setLocation(400,300); //设置主框位置
setSize(400,200);
setVisible(true);
open.addActionListener(this); //单击监听
quit.addActionListener(this);
land.addActionListener(this);
over.addActionListener(this);
} @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==open)
{
if(!landing)
{
JOptionPane.showMessageDialog(null,"NO landing","error",JOptionPane.ERROR_MESSAGE);
}
}
if(e.getSource()==quit)
{
if(!landing)
{
JOptionPane.showMessageDialog(null,"NO landing","error",JOptionPane.ERROR_MESSAGE);
}
}
if(e.getSource()==land)
{
lander.setVisible(true);
if(txname.getText().equals("001")&&txpsd.getText().equals("001"))
{
landing=true;
}
if(e.getSource()==over)
System.exit(0);
}
}
public static void main(String[] args)
{
new flag();
}
}
这个可以运行,在land 里 刚做,想自己做个文本编辑框 慢慢往里面加内容,就是想巩固自己学的东西...刚开始做密码检测就卡住了,望大家解决...
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.JTextPane;
这样写太麻烦import java.awt.*;
import javax.swing.*;
帮不了你。
好久没做swing开发了
{
lander.setVisible(true);
if(txname.getText().equals("001")&&txpsd.getText().equals("001"))
{
landing=true;
}
}
if(e.getSource()==over)
lander.setVisible(false);
改成这样可以运行ok了,但landing=true 貌似不立刻传送,有没刷新什么的命令啊,现在必须要在进一次登陆才行
再说你的问题,布局可以借用Panel 这个看看API就明白了
没注意有那功能package Textarea;import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTextPane;public class flag extends JFrame implements ActionListener {
private boolean landing = true; // 标志登陆否
private JTextPane textarea = new JTextPane();
private JPanel panel1 = new JPanel(); private JFileChooser filechooser = new JFileChooser(); private JMenuBar bar = new JMenuBar(); // 工具条 private JMenu fileMenu = new JMenu("File");
private JMenu editMenu = new JMenu("Edit");
private JMenu quitMenu = new JMenu("Quit");
private JMenu landMenu = new JMenu("Land"); private JMenuItem open = new JMenuItem("open");
private JMenuItem quit = new JMenuItem("quit");
private JMenuItem land = new JMenuItem("land"); private JDialog lander = new JDialog(); // 新建登陆对话框
private JLabel lableName = new JLabel("name:");
private JLabel lablePwd = new JLabel("password:");
private JTextField txname = new JTextField(); // 文本区域
private JPasswordField txpsd = new JPasswordField(); // 密码区域
private JButton over = new JButton("ok"); public flag() {
setTitle("文本编辑器");
// ImageIcon image=new ImageIcon("a.bmp");
// JLabel label=new JLabel(image);
// JScrollPane jscroll=new JScrollPane(label); // add(jscroll);
add(textarea);
setJMenuBar(bar); // 设置菜单
bar.add(fileMenu);
bar.add(quitMenu);
bar.add(editMenu);
bar.add(landMenu);
fileMenu.add(open);
quitMenu.add(quit);
landMenu.add(land); // 设置登陆框样式 lander.setLayout(new GridLayout(3, 1)); // 登陆框
lander.setTitle("lander");
lander.setLocation(400, 350);
lander.setSize(200, 100);
lander.add(lableName);
lander.add(txname);
lander.add(lablePwd);
lander.add(txpsd);
// lander.add("north",panel1);
lander.add(over); setLocation(400, 300); // 设置主框位置
setSize(400, 200);
setVisible(true); open.addActionListener(this); // 单击监听
quit.addActionListener(this);
land.addActionListener(this);
over.addActionListener(this); } @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub if (e.getSource() == open) {
if (!landing) {
JOptionPane.showMessageDialog(null, "NO landing", "error",
JOptionPane.ERROR_MESSAGE);
} else {
int i = filechooser.showOpenDialog(this);
if (i == JFileChooser.APPROVE_OPTION) {
File f = filechooser.getSelectedFile();
try {
InputStream is = new FileInputStream(f);
textarea.read(is, "d");
} catch (Exception ex) {
ex.printStackTrace();
}
}
} }
if (e.getSource() == quit) {
if (!landing) {
JOptionPane.showMessageDialog(null, "NO landing", "error",
JOptionPane.ERROR_MESSAGE);
} else
System.exit(0);
}
if (e.getSource() == land) {
lander.setVisible(true);
if (txname.getText().equals("001") && txpsd.getText().equals("001")) {
landing = true;
}
}
if (e.getSource() == over)
lander.setVisible(false); } public static void main(String[] args) {
new flag();
}
}
加问题了,熟悉的告诉下,都是基本功能..
// ImageIcon image=new ImageIcon("a.bmp");
// JLabel label=new JLabel(image);
// JScrollPane jscroll=new JScrollPane(label); // add(jscroll);
图片不是这样插入吗?怎么不显示 ..注意我是把textarea 屏蔽的情况下测试的插入图片
以下是JDK returnthe return state of the file chooser on popdown:
JFileChooser.CANCEL_OPTION
JFileChooser.APPROVE_OPTION
JFileChooser.ERROR_OPTIONif (i == JFileChooser.APPROVE_OPTION)以下是JDK
Return value if approve (yes, ok) is chosen. 不懂,我试了下 改成0 也成立 不过点取消也成立了...
if (0 == JFileChooser.APPROVE_OPTION)谁能解说下这个啊,真的看不懂有些JDK
ImageIcon image = new ImageIcon("E:\\java\\h\\src\\Textarea\\ha.JPG");
label.setIcon(image);
JScrollPane jscroll = new JScrollPane(label);
add(jscroll);但不知道为什么不能用相对路径..还有如果想让这个图片当背景有什么办法吗??..先谢过了