Hej, jag försöker plocka ur tal ur en sträng som jag skickar som ett actionCommand. Nån som har några tips på hur jag ska plocka ur talen ur strängen? Jag är nybörjare så inget är för enkelt :p Hittade en egen lösning till slut. Skulle inte ha varit så snabb på att fråga. :p Det där kommer ju inte funka så bra. Tack så mycket. Tänkte leta efter något sånt i API men nu slipper jag :p. Konvertering, ta tal ur en sträng
Här är koden:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Fonster extends JFrame implements ActionListener
{
private JPanel mittPanel;
public Fonster()
{
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Super Paint Deluxe");
this.setSize(800, 800);
this.setLocation(200, 150);
Container c = this.getContentPane();
c.setLayout(new BorderLayout());
JPanel meny = new JPanel();
meny.setLayout(new BoxLayout(meny, BoxLayout.Y_AXIS));
JButton b1 = new JButton("Röd");
meny.add(b1);
b1.addActionListener(this);
JButton b2 = new JButton("Svart");
meny.add(b2);
b2.addActionListener(this);
JButton b3 = new JButton("Gul");
//Här sätter jag ActionCommand. Kan endast vara en sträng.
b3.setActionCommand("255,255,0");
meny.add(b3);
b3.addActionListener(this);
c.add(meny, BorderLayout.WEST);
mittPanel = new JPanel();
mittPanel.setBackground(new Color(255, 0, 0));
c.add(mittPanel, BorderLayout.CENTER);
this.show();
}
public void actionPerformed(ActionEvent e)
{
// I testsyfte
System.out.println(e.getActionCommand());
// Här vill jag plocka ur siffrorna ur ActionCommand och sätta in.
mittPanel.setBackground(new Color(255, 76, 0));
}
}
Sv: Konvertering, ta tal ur en sträng
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Fonster extends JFrame implements ActionListener
{
private JPanel mittPanel;
public Fonster()
{
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Super Paint Deluxe");
this.setSize(800, 800);
this.setLocation(200, 150);
Container c = this.getContentPane();
c.setLayout(new BorderLayout());
JPanel meny = new JPanel();
meny.setLayout(new BoxLayout(meny, BoxLayout.Y_AXIS));
JButton b1 = new JButton("Röd");
b1.setActionCommand("255,000,000");//Ändrar till RGB värde.
meny.add(b1);
b1.addActionListener(this);
JButton b2 = new JButton("Svart");
b2.setActionCommand("000,000,000"); //Ändrar till RGB värde.
meny.add(b2);
b2.addActionListener(this);
JButton b3 = new JButton("Gul");
//Här sätter jag ActionCommand. Kan endast vara en sträng.
b3.setActionCommand("255,255,000");//Ändrar till RGB värde.
meny.add(b3);
b3.addActionListener(this);
c.add(meny, BorderLayout.WEST);
mittPanel = new JPanel();
mittPanel.setBackground(new Color(255, 000, 000));
c.add(mittPanel, BorderLayout.CENTER);
this.show();
}
public void actionPerformed(ActionEvent e)
{
String str;
int tal1;
int tal2;
int tal3;
//Lägger ActionCommand i variabel.
str = e.getActionCommand();
//Hämtar ut RGB värden ur str och konverterar till tal.
tal1 = Integer.parseInt(str.substring(0,3));
tal2 = Integer.parseInt(str.substring(4,7));
tal3 = Integer.parseInt(str.substring(8,11));
//Sätter bakgrundsfärgen.
mittPanel.setBackground(new Color(tal1, tal2, tal3));
}
}
Sv: Konvertering, ta tal ur en sträng
Om din färg är så här då. 2,10,111
Då är det bättre att du splittar efter varje kommatecken istället.
String regExp = ",";
String[] args = someTextString.split(regExp);
Det finns en massa sätt att lösa det på så jag säger inte mitt är någon lag. Bara tips. =)
Sedan så är det bra att du försöker använda kod-taggarna men här på pellesoft funkar det såhär:
< code java>
< /code>
Utan space mellan vänsterpilen och nästa tecken.
Sv: Konvertering, ta tal ur en sträng
Tack så mycket, funkar perfekt. Ska testa och göra om allt med en annan angreppspunkt. Är intressant det här.
MVH Jimmie Pettersson