佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1855|回复: 10

java c 等等初学者问题

[复制链接]
发表于 14-5-2010 12:39 AM | 显示全部楼层 |阅读模式
其实 这只是一个突然想到的问题
不太关系到所使用的软体
可是我还是选择了拿java来做个例子
希望前辈们可以指点我

如果我现在做gui / jframe
然后里面有drop down list
改背景颜色的button
告诉user mouse在做什么的title
还有把user 写在text box里面的数字sum起来的button

总共4个function 写这4样东西
分为1,2,3,4 可是 原本的code 不是只可以做一样东西 1了才能到2?
可是我现在想要的是不受限制 1,2,3,4 随时都可以做哪样东西@@

或者这样问看 原本都是我们ask user input, 然后output, 一个接一个的ask user
现在是user选择自己喜欢的按出output @@
user选择自己喜欢的function例如calculate sum 而不需要一个接一个走 也不需要问user要走哪个function

那么这样的code应该怎样个特殊的写法呢?
还是本来就可以的? 只是个突发奇想
因为之前在youtube学的 他的jframe jbutton jdropdown 都是分开project作的
而自己也还没完全明白 所以还无法靠自己把所有结合起来
可是我却有这样的疑问 所以希望得到指点
回复

使用道具 举报


ADVERTISEMENT

发表于 14-5-2010 02:13 AM | 显示全部楼层
GUI 不熟 , 帮不到你
回复

使用道具 举报

发表于 14-5-2010 02:33 AM | 显示全部楼层
其实 这只是一个突然想到的问题
不太关系到所使用的软体
可是我还是选择了拿java来做个例子
希望前辈们可 ...

qiqimon5566 发表于 14-5-2010 12:39 AM


你的意思是说在一个frame 里面有一个text field 然后有个4 button ( sum, subtract, multiply, divide), user 可以输入任何一个数目然后按button 做calculation 而不是每次跳input dialog 出来?
回复

使用道具 举报

 楼主| 发表于 14-5-2010 07:52 AM | 显示全部楼层
本帖最后由 qiqimon5566 于 14-5-2010 07:53 AM 编辑

其实应该是我的问题问得不太好
Main function                               | JButton | JCheckBox | Calculation |
Jbutton change background colour   |            |                |                  |
Jcheck box change font                  |            |                |                  |
calculation button                         |            |                |                  |

我就是想要把不一样的功能放进不一样的function / class / gui1.java / gui2.java / gui3.java
然后出现在同一个jframe上


然后初学者传统的coding 不都是一行接一行 ask user question 1 -> ask user question 2 -> 然后再output吗?
所以说原本的function 不也是要先run完第一个 才可以run第二个吗?
那么要怎样才能同时间出现这3个function : button, check box, calculate button 在jframe上
并且不需要问user要走哪个function 就可以自由决定 要使用1 还是3 还是2 使用哪个function先后都可以?
还是说都一定要写在同一个function里面才行呢?
回复

使用道具 举报

发表于 14-5-2010 09:20 AM | 显示全部楼层
其实应该是我的问题问得不太好
Main function                               | JButton | JCheckBox | Ca ...
qiqimon5566 发表于 14-5-2010 07:52 AM



不是很明白, 你意思是不是要弄成1個form有幾個button
操作跟其他軟件一樣, 每個button有自己的function?
回复

使用道具 举报

 楼主| 发表于 14-5-2010 09:41 AM | 显示全部楼层
本帖最后由 qiqimon5566 于 14-5-2010 09:54 AM 编辑

恩恩 大概就那样的意思
可是自己还没作过那样类似的东西
也没看过别人作过==
所以问题问得蛮含糊的
抱歉>.<"
回复

使用道具 举报

Follow Us
发表于 14-5-2010 09:59 AM | 显示全部楼层
本帖最后由 mdw1121686 于 14-5-2010 10:01 AM 编辑

回复 6# qiqimon5566

我理解能力差, java swing也差, 不知道你說的是不是這樣?

  1. import javax.swing.*;
  2. import java.awt.event.*;
  3. import java.awt.*;

  4. public class Tester {
  5.         JButton btn1;
  6.         JButton btn2;
  7.         JFrame frame;
  8.         Container c;
  9.         JTextField txt;

  10.         public static void main(String[] args) {
  11.                 Tester cl = new Tester();
  12.         }

  13.         public Tester() {
  14.                 frame = new JFrame("Test");
  15.                 frame.setSize(400, 400);
  16.                
  17.                 btn1 = new JButton("Function1");
  18.                 btn2 = new JButton("Function2");

  19.                 btn1.addActionListener(new Action1());
  20.                 btn2.addActionListener(new Action2());
  21.                
  22.                 c = frame.getContentPane();
  23.                 c.setLayout(new FlowLayout());
  24.                
  25.                 c.add(btn1);
  26.                 c.add(btn2);

  27.                 frame.setVisible(true);
  28.                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  29.         }

  30.         public class Action1 implements ActionListener {
  31.                 public void actionPerformed(ActionEvent e) {
  32.                         //Put your function here
  33.                         JOptionPane.showMessageDialog(null, "11");
  34.                         //Or put your function in Function2()
  35.                         Function1();
  36.                 }
  37.         }
  38.         public class Action2 implements ActionListener {
  39.                 public void actionPerformed(ActionEvent e) {
  40.                         //Put your function here
  41.                         JOptionPane.showMessageDialog(null, "22");
  42.                         //Or put your function in Function2()
  43.                         Function2();
  44.                 }
  45.         }
  46.         public void Function1(){
  47.                 JOptionPane.showMessageDialog(null, "11");
  48.         }
  49.         public void Function2(){
  50.                 JOptionPane.showMessageDialog(null, "22");
  51.         }
  52. }
复制代码


有2種方法, 1個是把code寫在button裡, 另一種方法是把code寫在void裡
回复

使用道具 举报

 楼主| 发表于 14-5-2010 10:08 AM | 显示全部楼层
本帖最后由 qiqimon5566 于 14-5-2010 10:09 AM 编辑

我是想用multi classes
照你的code看来 好像是全部和gui button有关系的都必须under 一个class
是这样子吗?
我的理解力也不是很好><
你还特地写出来解释 真是太感谢你了


我在想 如果我是要用multi classes分配button用处
那是不是就像你说的要写在button里呢?
回复

使用道具 举报


ADVERTISEMENT

发表于 14-5-2010 10:26 AM | 显示全部楼层
回复 8# qiqimon5566

e..hm..code全部寫出來是因為我也不會java swing, 所以我怕寫錯
喔喔...通常用不同class不是只是為了不同function的, 不過也是必學的
不懂是不是要這樣, 只是寫簡單的出來而已
Tester.java
  1. import javax.swing.*;
  2. import java.awt.event.*;
  3. import java.awt.*;

  4. public class Tester {
  5.         JButton btn1;
  6.         JButton btn2;
  7.         JFrame frame;
  8.         Container c;
  9.         JTextField txt;

  10.         public static void main(String[] args) {
  11.                 Tester cl = new Tester();
  12.         }

  13.         public Tester() {
  14.                 frame = new JFrame("Test");
  15.                 frame.setSize(400, 400);
  16.                
  17.                 btn1 = new JButton("Lecturer");
  18.                 btn2 = new JButton("Student");

  19.                 btn1.addActionListener(new Action1());
  20.                 btn2.addActionListener(new Action2());
  21.                
  22.                 c = frame.getContentPane();
  23.                 c.setLayout(new FlowLayout());
  24.                
  25.                 c.add(btn1);
  26.                 c.add(btn2);

  27.                 frame.setVisible(true);
  28.                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  29.         }

  30.         public class Action1 implements ActionListener {
  31.                 public void actionPerformed(ActionEvent e) {
  32.                         Lecturer lec = new Lecturer();
  33.                         lec.Say();
  34.                 }
  35.         }
  36.         public class Action2 implements ActionListener {
  37.                 public void actionPerformed(ActionEvent e) {
  38.                         Student stu = new Student();
  39.                         stu.Say();
  40.                 }
  41.         }
  42. }
复制代码


Lecturer.java
  1. import javax.swing.JOptionPane;


  2. public class Lecturer {
  3.         public void Say(){
  4.                 JOptionPane.showMessageDialog(null, "I am lecturer");
  5.         }
  6. }
复制代码

Student.java
  1. import javax.swing.JOptionPane;


  2. public class Student {
  3.         public void Say(){
  4.                 JOptionPane.showMessageDialog(null, "I am student");
  5.         }
  6. }
复制代码
回复

使用道具 举报

 楼主| 发表于 14-5-2010 11:02 AM | 显示全部楼层
谢谢你的code ^^
就是类似这样的东西
回复

使用道具 举报

发表于 14-5-2010 12:15 PM | 显示全部楼层
你可以extend JPanel 然后在main frame 把这些Panel 弄在一起
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 24-11-2025 11:14 AM , Processed in 0.123428 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表