Landsfiskalen Posted January 31, 2007 Share Posted January 31, 2007 Gjorde den här för längesen. Hitta en kod i en bok (PolyDemo.java) och så hitta ja på en massa extra. Om det funkar finns knapparna av och på överst. Och så har ja testat att göra exe-filer med exeForj men får det inte att funka. Nån här som vet hur man gör exe-filer? Och så har ja problem med ljudet. Kan bara denna.. Toolkit.getDefaultToolkit().beep(); ..I metoden pip. //PolyDemo.java //Jannes import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; import java.applet.*; class Poly extends JLabel implements ActionListener{ private int n,r; private int x0; private int y0; private double vinkel; private int[] x,y; private double dv = 4*2*Math.PI/360; private double vrid = 0; private double vänster,höger; private Timer tim = new Timer(20,this); private int xSteg = 4; private int ySteg = 3; private int dv2 = (int)dv/2; public Poly(int antal,int radie,PolyDemo p){ x0 = p.getSize().width / 2; y0 = p.getSize().height / 2;//Placera start-pos n = antal; r = radie; x = new int[n]; y = new int[n]; vinkel = 2 * Math.PI/n;//Ett varv/antal } public void start(){ tim.start(); } public void stop(){ tim.stop(); } public void actionPerformed(ActionEvent e){ vrid = vrid + dv; if(vrid > 2 * Math.PI){ vrid -= 2 * Math.PI; } ySteg = ySteg + 1; if(x0-r+xSteg < 0){//vänster kant if(ySteg > 0){//på väg neråt if(dv > 0){//roterar åt höger ySteg = ySteg*2; } if(dv < 0){//roterar åt vänster ySteg = ySteg/2; dv = - dv; } } if(ySteg < 0){//på väg uppåt if(dv > 0){//roterar åt höger ySteg = ySteg/2; dv = - dv; } if(dv < 0){//roterar åt vänster ySteg = ySteg*2; } } if(xSteg < 0){//Bromsa i vänster kant xSteg = -4; } pip(); xSteg = -xSteg; } if(x0+r+xSteg > getSize().width){//höger kant if(ySteg > 0){//på väg neråt if(dv > 0){//roterar åt höger ySteg = ySteg/2; dv = - dv; } if(dv < 0){ ySteg = ySteg*2; } } if(ySteg < 0){//på väg uppåt if(dv > 0){ ySteg = ySteg*2; } if(dv < 0){ ySteg = ySteg/2; dv = - dv; } } pip(); xSteg = -xSteg; } x0 += xSteg;//placera x-led if(y0 - r + ySteg < 0){//övre kant if(xSteg > 0){//på väg åt höger if(dv > 0){//roterar åt höger xSteg = xSteg / 2; dv = - dv; } if(dv < 0){//roterar åt vänster xSteg = xSteg * 2; } } if(xSteg < 0){//på väg åt vänster if(dv > 0){//roterar åt höger xSteg = xSteg * 2; } if(dv < 0){//roterar åt vänster xSteg = xSteg / 2; dv = - dv; } } if(ySteg < 0){//Bromsa i övre kant ySteg = 0; } pip(); ySteg = - ySteg;//vänd } if(y0 + r + ySteg > getSize().height){//nedre kant if(xSteg > 0){//på väg åt höger if(dv > 0){//roterar åt höger xSteg = xSteg * 2; } if(dv < 0){//roterar åt vänster xSteg = xSteg /2; dv = - dv; } } if(xSteg < 0){//på väg åt vänster if(dv > 0){//roterar åt höger xSteg = xSteg / 2; dv = - dv; } if(dv < 0){//roterar år vänster xSteg = xSteg * 2; } } if(xSteg == 0){//står still if(-dv > 0){ xSteg = -2; } else{//(-dv > 0){ xSteg = 2; } ySteg = 2; } pip(); ySteg = - ySteg; } y0 += ySteg;//placera y-led repaint(); } public void paintComponent(Graphics g){ Graphics2D g2 = (Graphics2D)g; super.paintComponent(g2); for(int i = 0;i < n;i++){ double v = i * vinkel - vrid; x = x0 + (int)Math.round(r * Math.cos(v)); y = y0 - (int)Math.round(r * Math.sin(v));//Rotera } GradientPaint gp = new GradientPaint(0F,5F,Color.green,10F,10F,Color.orange,true); g2.setPaint(gp); g2.fillPolygon(x,y,n); } public void pip(){ Toolkit.getDefaultToolkit().beep(); } } public class PolyDemo extends JFrame implements ActionListener{ private JButton på = new JButton("På"); private JButton av = new JButton("Av"); private Poly y; public PolyDemo(){ JPanel a = new JPanel(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); setSize(screenSize.width,screenSize.height); y = new Poly(5,50,this); getContentPane().add(y,BorderLayout.CENTER); getContentPane().add(a,BorderLayout.NORTH); y.setOpaque(true); y.setForeground(Color.red); y.setBackground(Color.blue); a.setBackground(Color.green); a.add(på); a.add(av); på.addActionListener(this); av.addActionListener(this); setTitle("Fiskalens Fönster"); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e){ if(e.getSource() == på){ y.start(); } else{ y.stop(); } } public static void main(String[] argv){ PolyDemo pd = new PolyDemo(); } } Quote Link to comment Share on other sites More sharing options...
Landsfiskalen Posted January 31, 2007 Author Share Posted January 31, 2007 Här e en till. 100% gjord av mig själv. Döpte den till TalSwing.java för att ja hade gjort programmet helt komplett i awt. Så detta är inte riktigt färdigt ännu, men det funkar. En alfa-beta. ;D Kanske en utmaning för arnada. Jag vill se era javakoder också...... //Filen TalSwing.java //Janne import java.awt.*; import java.awt.geom.*; import java.awt.event.*; import javax.swing.*; public class TalSwing extends JApplet{ TalSwingPanel bottenPanel; JLabel[] label = new JLabel[30]; JLabel label1; int detGissadeTalet; public TalSwing(){ label1 = new JLabel("",JLabel.CENTER); label1.setOpaque(false); label1.setForeground(Color.green); JPanel panel1 = new JPanel(); panel1.setOpaque(false); panel1.add(label1); TalSwingControll controll = new TalSwingControll(this); controll.startPos(); JPanel labelPanel = new JPanel(); labelPanel.setOpaque(false); labelPanel.setLayout(new GridLayout(5,6,3,3)); for(int i = 0;i < label.length;i++){ label = new JLabel("?",JLabel.CENTER); label.setOpaque(false); label.setForeground(Color.yellow); labelPanel.add(label); } bottenPanel = new TalSwingPanel();//BottenPanelen bottenPanel.setLayout(new BorderLayout()); bottenPanel.add("North",panel1); bottenPanel.add("Center",labelPanel); bottenPanel.add("South",controll); setContentPane(bottenPanel); } public static void main(String[] args){ JFrame frame = new JFrame("TalSwing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(new TalSwing()); frame.setSize(200,200); frame.show(); } public void bytText(String text){label1.setText(text);} public void valAvNummer(boolean serDuTalet,int index){ int[] nr = {1,2,4,8,16,32,64}; if(nr[index] != 6){ talFoljd(nr[index]); } if(serDuTalet){ detGissadeTalet = detGissadeTalet + nr[index] / 2; } if(index == 6){ for(int i = 0;i < label.length;i++){ label.setText(""); } if(detGissadeTalet < 1 || detGissadeTalet > 60){ bottenPanel.setText("Sluta vela"); } else{ bottenPanel.setText(Integer.toString(detGissadeTalet)); } detGissadeTalet = 0; } } public void talFoljd(int antaliVarjeGrupp){ int startaMed = antaliVarjeGrupp; int resultat = 0; int index = 0; for(int i = 0;i < label.length;i = i + antaliVarjeGrupp){ resultat = startaMed; index = i; while(index < i + antaliVarjeGrupp && index < label.length){ label[index].setText(Integer.toString(resultat)); index++; resultat++; } startaMed = startaMed + antaliVarjeGrupp * 2; } } } class TalSwingPanel extends JPanel{ Color color1; Color color2; String text = ""; Font serif = new Font("Serif",Font.BOLD|Font.ITALIC,50); TalSwingPanel(){ color1 = new Color(150,0,100);//Default colors color2 = new Color(200,200,255); } TalSwingPanel(Color color1,Color color2){//Egen color this.color1 = color1; this.color2 = color2; } public void paintComponent(Graphics componenten){ //Panelens bakgrundsFärg Graphics2D comp2D = (Graphics2D)componenten; GradientPaint gp = new GradientPaint(0F,0F,color1,100F,100F,color2,true); Rectangle2D.Float background = new Rectangle2D.Float(0F,0F,(float)getSize().width,(float)getSize().height); comp2D.setPaint(gp); comp2D.fill(background); FontMetrics fm = getFontMetrics(serif); comp2D.setFont(serif); int x = (getSize().width - fm.stringWidth(text))/2; int y = getSize().height/2; comp2D.setColor(Color.red); comp2D.drawString(text,x,y); } public void setText(String text){ this.text = text; repaint(); } } class TalSwingControll extends TalSwingPanel implements ActionListener{ TalSwing frame; TalSwingButton jaButton; TalSwingButton nejButton; int count = 0; TalSwingControll(TalSwing parent){ frame = parent; super.color1 = Color.yellow; super.color2 = Color.blue; jaButton = new TalSwingButton("",Color.red); jaButton.addActionListener(this); nejButton = new TalSwingButton("Nej",Color.red); nejButton.addActionListener(this); setLayout(new FlowLayout()); add(jaButton); add(nejButton); } public void actionPerformed(ActionEvent e){ if(e.getSource() == jaButton){counter(true);} else if(e.getSource() == nejButton){counter(false);} } public void counter(boolean ok){ if(count > 5){ count = 0; } else{ count++; } frame.valAvNummer(ok,count); bytKnapp(); } public void bytKnapp(){ if(count == 6){ frame.bytText("Tänk på ett tal mellan 1 och 60"); jaButton.setText("Ok"); remove(nejButton); } else if(count == 0){ frame.bytText("Ser du ditt tal?"); jaButton.setText("Ja"); add(nejButton); frame.bottenPanel.setText(""); } repaint(); } public void startPos(){ count = 6; bytKnapp(); } class TalSwingButton extends JButton{ Color nyCol; Color gammalCol = Color.black; TalSwingButton(String text,Color nyCol){ super(text); this.nyCol = nyCol; setOpaque(false); setBorderPainted(false); addMouseListener(musen); } MouseAdapter musen = new MouseAdapter(){ public void mouseEntered(MouseEvent ev){ setForeground(nyCol); } public void mouseExited(MouseEvent ev){ setForeground(gammalCol); } }; } } Quote Link to comment Share on other sites More sharing options...
Landsfiskalen Posted February 1, 2007 Author Share Posted February 1, 2007 Och så kan man visa den i IE7 också, om man tillåter blockerad aktiveX. Fast ja får det inte att funka i foxen. Funkar alltså som både fristående program och applet. I Textpad [ctrl] [2] och [ctrl] [3] Filen TalSwing.html sparas i samma mapp som TalSwing.java <html> <head> <title>TalSwing</title> </head> <body> <p>Gissa<br> <object height="200"width="240"classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4_0-win.cab"> <param name="Code"value="TalSwing.class"> Javan måste va aktiverad </object> </body> </html> Kanske är fel i denna raden (Gammal html fil som jag hittat och ändrat) codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4_0-win.cab"> Ser ut så här. Quote Link to comment Share on other sites More sharing options...
Landsfiskalen Posted February 2, 2007 Author Share Posted February 2, 2007 Nu funkar den i Fox. ;D Snodde en kod och ändrade lite. (Får börja träna på html) <html> <head> <title>Gissa</title> </head> <body> <p>Gissa<br> <applet code=TalSwing.class width=300 height=300></applet> <p>Om det inte funkar</p> <p><a href="http://java.sun.com/getjava/">Hämta java</a></p> </body> </html> Bidde så här. ;D Quote Link to comment Share on other sites More sharing options...
arnada Posted February 3, 2007 Share Posted February 3, 2007 ahhh utmaningar ;D jag kan skicka upp något när jag får tillgång till skoldatorn Quote Link to comment Share on other sites More sharing options...
Landsfiskalen Posted February 3, 2007 Author Share Posted February 3, 2007 ahhh utmaningar ;D jag kan skicka upp något när jag får tillgång till skoldatorn Skoldatorn? Detta va min hemläxa. ;D Quote Link to comment Share on other sites More sharing options...
Guest Gurkjuice Posted August 14, 2007 Share Posted August 14, 2007 Nån här som vet hur man gör exe-filer? Tråd: Java till exe åt folket! ;D Quote Link to comment Share on other sites More sharing options...
Landsfiskalen Posted August 14, 2007 Author Share Posted August 14, 2007 Nån här som vet hur man gör exe-filer? Tråd: Java till exe åt folket! ;D Bra jobbat. ;D Fast ja har inte testat ännu. Har nästan glömt allt. 8) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.